# Targets placed in this list will be published as Maven artifacts
    //apps/intentsync:onos-apps-intentsync
    //apps/newoptical:onos-apps-newoptical
    //apps/optical-model:onos-apps-optical-model
    //apps/restconf/api:onos-apps-restconf-api
    //apps/routing-api:onos-apps-routing-api
    //apps/route-service/api:onos-apps-route-service-api
    //apps/vpls:onos-apps-vpls
    //cli:onos-cli
    //core/api:onos-api
    //core/common:onos-core-common
    //core/net:onos-core-net
    //core/store/dist:onos-core-dist
    //core/store/persistence:onos-core-persistence
    //core/store/serializers:onos-core-serializers
    //drivers/utilities:onos-drivers-utilities
    //drivers/default:onos-drivers-default
    //drivers/netconf:onos-drivers-netconf
    //protocols/bgp/api:onos-protocols-bgp-api
    //protocols/bgp/bgpio:onos-protocols-bgp-bgpio
    //protocols/grpc/api:onos-protocols-grpc-api
    //protocols/p4runtime/api:onos-protocols-p4runtime-api
    //protocols/p4runtime/model:onos-protocols-p4runtime-model
    //protocols/p4runtime/proto:onos-protocols-p4runtime-proto
    //protocols/grpc/utils:onos-protocols-grpc-utils
    //protocols/gnmi/api:onos-protocols-gnmi-api
    //protocols/gnoi/api:onos-protocols-gnoi-api
    //protocols/isis/api:onos-protocols-isis-api
    //protocols/lisp/api:onos-protocols-lisp-api
    //protocols/lisp/msg:onos-protocols-lisp-msg
    //protocols/netconf/api:onos-protocols-netconf-api
    //protocols/openflow/api:onos-protocols-openflow-api
    //protocols/openflow/ctl:onos-protocols-openflow-ctl
    //protocols/ospf/api:onos-protocols-ospf-api
    //protocols/ospf/protocol:onos-protocols-ospf-protocol
    //protocols/ovsdb/api:onos-protocols-ovsdb-api
    //protocols/ovsdb/ctl:onos-protocols-ovsdb-ctl
    //protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc
    //protocols/pcep/server/api:onos-protocols-pcep-server-api
    //protocols/pcep/pcepio:onos-protocols-pcep-pcepio
    //protocols/rest/api:onos-protocols-rest-api
    //protocols/restconf/client/api:onos-protocols-restconf-client-api
    //protocols/snmp/api:onos-protocols-snmp-api
    //tools/build/conf:onos-build-conf
    //utils/junit:onlab-junit
    //utils/misc:onlab-misc
    //utils/osgi:onlab-osgi
    //utils/rest:onlab-rest
    //web/api:onos-rest
    //lib:com_google_protobuf_protobuf_java
    //lib:io_grpc_grpc_api_context
    //lib:io_grpc_grpc_stub
    //lib:io_grpc_grpc_protobuf
