# Targets placed in this list will be published as Maven artifacts
    //apps/intentsync:onos-apps-intentsync
    //apps/mcast/api:onos-apps-mcast-api
    //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_core_context
    //lib:io_grpc_grpc_stub
    //lib:io_grpc_grpc_protobuf
