2016-01-16 34 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>