During several day's investigation, I have some results and solution as following:
Solution: using deprecated Import-Service and Export-Service 
Although Import-Service and Export-Service head have been deprecated, we
can still use the head to meet our demand because we can consider hk2 level's service dependency as some static service dependency.
I have confirmed that bnd or maven-bundle-plugin supports the two heads and felix obr aslo supports the two heads.
Then, we need to resolve a problem: how to generate Import-Service and Export-Service head?
Method1: manually adding Import-Service and Export-Service head into osgi.bundle file
Advantage: simple and fast
Disadvantage: needing to large scale edit osgi.bundle
Method2: extending some maven plugin(maybe hk2 maven plugin, maybe bnd...) to automaticlly scan bundle(@inject and @Service) and generate
the two heads
Advantage: not editing osgi.bundle manually
Disadvantage: a litter complex and needing to master maven or bnd, and also needing to invesigate how to extend
Method3: Not modifying current module's manifest.mf, after generating obr-modules.xml, adding Import-Service and Export-Service head into the repository file by scanning each bundle
Advantage: not editing osgi.bundle manually and not extending current build architecture
Disadvantage: (1) needing to how to add Import-Service and
Export-Service head into the repository file because felix obr Api has not published similar api. (Note: I have sent a email to felix to consult the thing)
(2) needing to how to scan (@inject and @Service) better and maybe needing to extend osgi-adapter module
As a demostrating, I have used Method1 to add the two heads for web-glue and weld-integration and currently, the two modules have not some direct
dependency(module layer dependency), however, web-glue has a hk2 service
dependency on weld-integration. So, after I edited osgi.bundles of the two modules, obr-modules.xml has added the service related requirement/capability for the two modules.
<resource id='org.glassfish.main.web.glue/4.0.0.SNAPSHOT' symbolicname='org.glassfish.main.web.glue' ...'>
<require name='service' filter='(service=com.sun.enterprise.container.common.spi.JCDIService)' extend='false' multiple='true' optional='false'>Import Service com.sun.enterprise.container.common.spi.JCDIService</require>
<resource id='org.glassfish.main.web.weld-integration/4.0.0.SNAPSHOT' symbolicname='org.glassfish.main.web.weld-integration' ...>
<p n='service' v='com.sun.enterprise.container.common.spi.JCDIService'/>
<p n='service' v='org.glassfish.api.naming.NamedNamingObjectProxy'/>
<p n='service' v='org.glassfish.weld.ResourceLoaderImpl'/>
<p n='service' v='com.sun.enterprise.web.WebComponentDecorator'/>
<p n='service' v='org.glassfish.api.container.Container'/>
<p n='service' v='org.glassfish.weld.WeldDeployer'/>
: RFC-0112 Bundle Repository
: in WebContainer.java, the following declares a service dependency
private JCDIService jcdiService