2016-01-16 33 views
3

我在使用openrdf的項目,並且我需要陰影插件來轉換我的服務條目。我想同時建立一個戰爭和一個罐子,因爲這兩種用法都是可能的。但是,我無法讓陰影插件同時生成陰影廣告牌和陰影戰爭 - 陰影僅調用屬性中定義的包類型,並綁定例如將jar插件包裝到包裝階段,以便在戰爭結果旁邊創建一個罐子,然後生成無陰影的罐子。我怎樣才能同時創建陰影的罐子和陰影的戰爭?如何使用maven遮罩來構建jar和war

+0

的可能的複製【什麼是用於maven的遮陽簾插件,你爲什麼要搬遷Java包?](http://stackoverflow.com/questions/13620281/what-is-the -maven遮陽簾插件使用的換和爲什麼 - 會 - 你 - 想對移居-JAVA) – javapapo

回答

9

如果「陰影戰爭」你的意思只是裝入WEB-INF/lib,可能比你只是使用maven-war-plugin分開,並使用jar包裝類型的所有依賴常規戰爭。這種方式陰影插件將正常工作。並且.war將由插件構建。

下面是pom.xml。並且here是工作示例。

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>so.test</groupId> 
    <artifactId>stackoverflow-test2</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>2.1</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <finalName>${project.build.finalName}-fatjar</finalName> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.6</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>war</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>org.testng</groupId> 
      <artifactId>testng</artifactId> 
      <version>5.14.9</version> 
     </dependency> 
    </dependencies> 


</project>