Я работаю над проектом, работающим с openrdf, и мне нужен плагин для преобразования моих служебных записей. Я хотел бы построить войну и банку одновременно, так как оба варианта возможны. Тем не менее, я не могу заставить теневой плагин создавать заштрихованную банку и затененную войну одновременно - тень только вызывает тип пакета, определенный в свойствах, и связывание, например. плагин jar на фазу упаковки, чтобы создать банку рядом с войной, результат в незаштрихованном банке. Как я могу одновременно создать затененную банку и затененную войну?Как использовать maven shade для сборки jar и war
3
A
ответ
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>
Возможный дубликат [Что такое Maven-тень-плагин используется для, и почему вы хотите переместить Java пакеты?] (Http://stackoverflow.com/questions/13620281/what-is-the -maven-тень-плагин используемый-для-и-почему-бы-вы-хотите-на-перебазирования-Java) – javapapo