2012-11-05 32 views
4

我有一个EJB-maven-Project,它有一些生成的类(由JAXB生成)。 它们生成到:现在target/generated-sources/jaxb/maven-ejb-plugin:include generated sources

,与Maven的EJB-插件我希望他们(即其compilated类)被列入到客户罐子,这样的事情:

 <plugin> 
      <artifactId>maven-ejb-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <!-- Tell Maven we are using EJB 3.1 --> 
       <ejbVersion>3.1</ejbVersion> 
       <generateClient>true</generateClient> 
       <clientIncludes> 
        <clientInclude>com/bla/ch/authorization/client/**</clientInclude> 
        <clientInclude>target/generated-sources/jaxb/**</clientInclude> 
       </clientIncludes> 
      </configuration> 
     </plugin> 

这确实不工作,生成的类不是ejb-client-jar的一部分。 (虽然他们在ejb罐)。 我该如何正确地做到这一点?

回答

0

在你的jar中包含源代码可能不是一个好的解决方案。

您可以添加生成源在你地点的资源,然后使用源插件,产生所谓的神器,sources.jar

<resources> 
    <resource> 
     <directory>${basedir}/target/generated-sources</directory> 
     <filtering>true</filtering> 
    </resource> 
</resources> 
    [...] 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

这比生产具有源代码的jar更好的办法。

+0

对不起,我不够精确。当然,我不希望我的jar中的源代码(这是另一个问题),但生成的源代码的编译类。这些类自动包含在我的'authorization-ejb-0.0.1-SNAPSHOT.jar'中 - 但不在我的'authorization-ejb-0.0.1-SNAPSHOT-client.jar'中。 –

+0

也许是一个解决方案:根据 http: //mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html 让我们将代码生成一个正常的src-location,即'src/main/java',并将它作为''包含进来maven-ejb-plugin。 –

+0

也许,这将有助于: http://stackoverflow.com/questions/8587353/maven-how-to-handle-generated-sources-for-testonly?rq=1 –