2012-05-06 36 views
0

我正在開發一個maven web項目。 我創建了一個不同的Maven項目,其中包含我想在主項目中使用的幾個小程序。該項目被添加爲主項目的依賴項。複製帶有依賴關係的簽名jar

在我的小程序項目POM,

我添加了一個插件,用於創建具有依賴性的罐子,

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.3</version> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> <!-- this is used for inheritance merges --> 
     <phase>package</phase> <!-- bind to the packaging phase --> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
</plugin> 

我也簽署了uberjar避免一些安全限制。

<plugin> 
    <artifactId>maven-jar-plugin</artifactId> 
    <executions> 
     <execution> 
     <goals> 
      <goal>sign</goal> 
     </goals> 
     </execution> 
     <execution> 
     <id>make-assembly</id> 
     <phase>package</phase> 
     <goals> 
      <goal>sign</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <jarPath>${project.build.directory}/${project.build.FinalName}-${project.packaging}-with-dependencies.${project.packaging}</jarPath> 
     <keystore>${basedir}/signstore.jks</keystore> 
     <alias>signstore</alias> 
     <storepass>signstore</storepass> 
    </configuration> 
    </plugin> 

我現在要簽署的uberjar複製到WebApp文件夾每當我建主體工程,所以我的HTML文件可以使用它。

這可能嗎?我只設法複製沒有依賴關係的jar。

+0

如果你想複製這個jar,我會深入研究maven-dependency-plugin來使用它進行復制。我不確定這是否符合您的要求。 – khmarbaise

+0

嗯,我已經看過,但我不知道如何選擇具有依賴項的jar而不是標準jar。 – user1337157

+0

在主項目中指定jar-with-the-dependencies作爲'dependency'。這將使這個罐子進行復制。 – Raghuram

回答

0

我有罐子,有依賴性了同樣的問題,它更容易使用maven shade plugin構建它:

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>1.6</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <transformers> 
           <transformer 
            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
            <mainClass>your.main.Class</mainClass> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

這是在任何時間小時使用Maven Jar插件戰鬥後的工作。它也解決了你的依賴之間的衝突