Tôi có một dự án maven nơi tôi đang xây dựng một tập tin chiến tranh, nhưng tôi cũng đang sử dụng maven-jar-plugin để xây dựng một cái lọ trong cùng một dự án.maven xây dựng với chiến tranh và lọ đẩy đồ vật lạ để repo nội
--DISCLAIMER-- Tôi biết đây không phải là cách chính xác để thực hiện việc này, nhưng có một số vấn đề khác xảy ra khi chia thành dự án jar và dự án chiến tranh riêng biệt với một số plugin của bên thứ ba.
Tôi thấy một số hành vi lạ với điều này. Dưới đây là cấu trúc dự án của tôi.
warproject
-src
--main
---webapp
----WEB-INF
-----web.xml
---java
----com.test.myclass
-----test.java
-pom.xml
Khi tôi xây dựng dự án này, tôi có được chiến tranh và tệp jar chính xác trong thư mục đích của mình, tuy nhiên trong trường hợp địa phương. Tệp chiến tranh được cài đặt có tên là war-jar-0.0.1-SNAPSHOT.war, tuy nhiên nội dung của tệp này là nội dung của tệp jar của tôi. Điều này cũng xảy ra nếu tôi làm ngược lại. tức là nếu tôi thiết lập dự án của mình để tạo bình và sử dụng plugin maven-war để xây dựng chiến tranh, lưu trữ trong thư mục đích của tôi là chính xác, nhưng repo cục bộ của tôi có tệp jar với nội dung của tệp chiến tranh của tôi. Dưới đây là tệp pom tôi đang sử dụng.
<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>com.test</groupId>
<artifactId>war-jar</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<jarName>${project.artifactId}-${project.version}-client</jarName>
</configuration>
<executions>
<execution>
<id>make-a-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
Đầu ra bàn điều khiển cho điều này như sau, nó cho thấy rằng bình đang được tải lên như chiến tranh.
Installing /home/me/work/src/war-jar/target/war-jar-0.0.1-SNAPSHOT.jar to /home/me/.m2/repository/com/test/war-jar/0.0.1-SNAPSHOT/war-jar-0.0.1-SNAPSHOT.war
--UPDATE tôi đã làm việc này, nhưng tôi đã phải thay đổi giai đoạn thực hiện 'make-một-jar' của tôi để cài đặt từ gói. Điều này làm việc tốt và các hiện vật chính xác được tải lên, nhưng tôi vẫn còn bối rối là tại sao điều này tạo nên sự khác biệt. Rõ ràng là tạo tác được tạo ra ở một giai đoạn vòng đời khác nhau, và do đó không phải là xung quanh tại thời điểm cài đặt ban đầu cho dự án, do đó các tập tin sai không được tải lên. Điều này có vẻ như một 'hack' và tôi muốn hiểu tại sao điều này là hành xử theo cách này.
lệnh bạn sử dụng để tạo bình/chiến tranh là gì? mvn cài đặt? –
Có mvn cài đặt trên dự án. – broschb