ฉันจะเปลี่ยนชื่อสงครามที่สร้างโดยปลั๊กอินแอสเซมบลีของ maven ได้อย่างไร


87

ฉันจะเปลี่ยนชื่อจาก1.0.snapshot-jar-with-dependenciesเป็นอย่างอื่นได้อย่างไรด้านล่างนี้คือเนื้อหาของ POM ของฉัน:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-5</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.package.example.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>

คำตอบ:


168

ใช้สิ่งต่อไปนี้ในการกำหนดค่าของmaven-assembly-plugin:

<configuration>
  <finalName>custom-name</finalName>
  <appendAssemblyId>false</appendAssemblyId>
</configuration>

รายละเอียดทั้งหมดในเอกสารอย่างเป็นทางการของassembly:singlemojo


8
แอสเซมบลี: เลิกใช้แอสเซมบลี
lordB8r

นอกจากนี้ยังมีประโยชน์มากเมื่อใช้แอสเซมบลี: single with "dir" format descriptor การใช้ "." หมายถึง outputdir ที่ระบุจะเป็น dir เอาต์พุตที่แท้จริง
Peter Kahn

88

คุณสามารถบรรลุเป้าหมายนี้ได้โดยระบุfinalNameคุณสมบัติในปอมของคุณเช่น

<build>
    <finalName>something-else</finalName>
    ...
</build>

4
อีกครั้งฉันได้รับสิ่งอื่น - jar-with-dependencies ซึ่งใช้งานได้ฉันจะกำจัด jar-with-dependencies ได้อย่างไรเมื่อฉันลบ descriptorRefs ฉันได้รับข้อผิดพลาดในการสร้าง
Gandalf StormCrow

7
คุณต้องมี<appendAssemblyId>false</appendAssemblyId>แท็กตามที่ Pascal แนะนำ
พายุฟ้าคะนอง

หมายเหตุคำต่อท้ายจะต่อท้ายชื่อนี้
Martin Serrano

5

ในกรณีของการบรรจุ JAR ที่มีการอ้างอิงจะไม่ทำงาน คุณจะแก้ไขได้โดยใช้ปลั๊กอินการพึ่งพา:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>project.group.id</groupId>
                                <artifactId>artifact-id</artifactId>
                                <version>0.0.1-SNAPSHOT</version>
                                <type>jar</type>
                                <overWrite>true</overWrite>
                                <outputDirectory>${basedir}/some/dir</outputDirectory>
                                <destFileName>custom-name.jar</destFileName>
                            </artifactItem>
                        </artifactItems>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>true</overWriteSnapshots>
                    </configuration>
                </execution>
            </executions>
        </plugin>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.