2012-11-05 122 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 –

相關問題