2016-01-16 2 views
3

Я работаю над проектом, работающим с openrdf, и мне нужен плагин для преобразования моих служебных записей. Я хотел бы построить войну и банку одновременно, так как оба варианта возможны. Тем не менее, я не могу заставить теневой плагин создавать заштрихованную банку и затененную войну одновременно - тень только вызывает тип пакета, определенный в свойствах, и связывание, например. плагин jar на фазу упаковки, чтобы создать банку рядом с войной, результат в незаштрихованном банке. Как я могу одновременно создать затененную банку и затененную войну?Как использовать maven shade для сборки 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> 

 Смежные вопросы

  • Нет связанных вопросов^_^