在打包或部署期间构建 mvn 源 jar

问题描述 投票:0回答:1

尝试使用包含的源 jar 来构建我的项目。构建工作并生成 jar 文件,但我的 .m2 目录中没有 resources.jar 文件。我一直在运行“mvn clean install”

这是我的pom:

<?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>pick.box</groupId>
  <artifactId>pick-box</artifactId>
  <version>1.0.8</version>

  <name>pick-box</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <java.version>17</java.version>
  </properties>


  <distributionManagement>
    <repository>
      <id>github</id>
      <name>GitHub wbf22 Apache Maven Packages</name>
      <url>https://maven.pkg.github.com/wbf22/PickBox</url>
    </repository>
  </distributionManagement>

  <dependencies>

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.10.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.16.1</version>
    </dependency>

  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
      <!-- run mvn source:jar to generate these in /target -->
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.2.1</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>package</phase>
              <goals>
                  <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
      </plugin>


      </plugins>
    </pluginManagement>
  </build>
</project>

运行“mvn source:jar”我确实在目标目录中获取了sources.jar 文件。所以我认为该插件在全新安装期间被忽略了。有什么想法吗?

谢谢

java maven
1个回答
0
投票

Chatgpt 帮助我找到了解决方案。看起来我是在 pom.xml 的pluginManagement 部分中执行此操作的。需要在构建>插件下进行。这是更新后的 pom:

<?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>pick.box</groupId>
  <artifactId>pick-box</artifactId>
  <version>1.0.8</version>

  <name>pick-box</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <java.version>17</java.version>
  </properties>


  <distributionManagement>
    <repository>
      <id>github</id>
      <name>GitHub wbf22 Apache Maven Packages</name>
      <url>https://maven.pkg.github.com/wbf22/PickBox</url>
    </repository>
  </distributionManagement>

  <dependencies>

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.10.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.16.1</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <!-- run mvn source:jar to generate these in /target -->
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.2.1</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>package</phase>
              <goals>
                  <goal>jar</goal>
              </goals>
            </execution>
          </executions>
      </plugin>

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.0.0-M1</version>
          <executions>
              <execution>
                  <id>install-jar</id>
                  <phase>install</phase>
                  <goals>
                      <goal>install-file</goal>
                  </goals>
                  <configuration>
                      <groupId>pick.box</groupId>
                      <artifactId>pick-box</artifactId>
                      <version>1.0.8</version>
                      <packaging>jar</packaging>
                      <file>${project.build.directory}/${project.build.finalName}-sources.jar</file>
                      <classifier>sources</classifier>
                  </configuration>
              </execution>
          </executions>
      </plugin>


    </plugins>
  </build>
</project>
© www.soinside.com 2019 - 2024. All rights reserved.