2011-12-19 146 views
0

好吧,我遇到了我需要創建一個uber jar的典型問題,但是我的項目依賴關係有多個spring.handlers和spring.schemas文件。我搜索了一下,發現我的問題要求我使用maven-shade插件,以及它的AppendingTransformer。問題是,當我添加配置並運行目標時,它不合並文件;更重要的是,我可以爲appender或資源文件放入一個僞造類路徑,並且它不會發出抱怨,這使我相信它甚至不會嘗試執行變換器。maven-shade插件的AppenderTransformer的使用

execute- MVN編譯包遮陽:遮陽

<build> 
    <finalName>mongo-dictionary</finalName> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.7.2</version> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>1.5</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <transformers> 
           <transformer 
            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
           </transformer> 
           <transformer 
            implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
            <resource>META-INF/spring.schemas</resource> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

回答

-1

哪裏是這個插件配置,可以確保它在正確的地方 - 構建 - >插件要爲其創建超級項目的元素罐。我有相同的配置適合我。

此外,您不需要單獨執行陰影:陰影。運行mvn包會爲你做到這一點。

+0

所以這裏是我的pom.xml的整個構建部分 – 2011-12-20 06:05:44

+0

我已經添加了整個構建部分。請檢查並讓我知道是否有任何問題 – 2011-12-20 06:11:31

+0

我有我的插件配置爲pluginManagement元素的子項,一旦我擺脫了pluginManagement tage一切工作如廣告。感謝您指點我正確的方向 – 2011-12-20 06:21:28

1

我把我的插件配置爲pluginManagement元素的子元素,一旦我擺脫了pluginManagement標籤,所有的東西都像廣告一樣工作。

+0

這應該是公認的答案 - 請添加一個工作示例,顯示發生了什麼變化(如果可能)。 – studro 2018-02-07 05:51:22