簡體   English   中英

如何在包含jar文件的zip文件中打包Maven項目

[英]How to package a Maven project in zip file with jar files inside

小介紹

我是maven的新人,我面對這個問題。 我的項目結構如下:

|--root |--bin |-- some bash scripts |--config |-- some .properties files |--j2ee-apps |-- some web related files |--META-INF |-- MANIFEST.MF |--src |-- main |-- java |-- test |-- java

目標

執行mvn package我必須得到具有以下結構的.zip文件:

|--zip |--bin |-- some bash scripts |--config |-- config.jar <-- jar with all .properties files inside |--j2ee-apps |-- some web related files |--META-INF |-- MANIFEST.MF |--lib |-- classes.jar <-- jar with all .class files inside (from src folder)

我試過使用maven-assembly-plugin,但我找不到適合我的例子。

你的assembly.xml應該是這樣的

<assembly>
     <id>zip</id>
     <formats>
       <format>zip</format>
     </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
     <dependencySet>
      <unpack>false</unpack>
      <scope>runtime</scope>
      <outputDirectory>lib</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
     </dependencySet>
   </dependencySets>
   <fileSets>
    <fileSet>
     <directory>${project.build.directory}</directory>
     <outputDirectory>/lib</outputDirectory>
     <includes>
       <include>*.jar</include>
     </includes>
    </fileSet> 
    <fileSet>
      <directory>${project.basedir}/bin</directory>
      <outputDirectory>/bin</outputDirectory>
      <filtered>true</filtered>
      <includes>
        <include>**/*.*</include>
      </includes>
    </fileSet>
    <!-- add fileSet entries for other folders under root -->
  </fileSets>
</assembly>

我不確定是否有任何方法可以將META-INF放在zip下,而不是在項目的jar文件中。

要更改jar的名稱,您需要maven-jar-plugin

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>2.3.2</version>
  <configuration>
    <finalName>new_jar_name</finalName>                   
  </configuration>
</plugin> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM