这主要是一个新手Maven问题。

自从SwingX迁移到Kenai以来,网站上到处都警告说许多链接已断开..因此,这是我的最佳尝试。

  • 我去了https://java.net/projects/swingx/downloads/directory/releases
  • 单击“SwingX 1.6.4 All-Sources”(对我来说,这确实是一种非直觉的,命中或失败的选择,但也许这是其他人理解的命名约定吗?)
  • 下载swingx-all-1.6.4-sources.jar(为什么它甚至是 jar 而不是zip?)

  • 但是,此源jar不包含POM.XML。

    因此,我从同一链接下载了swingx-all-1.6.4.jar,并将其重命名为.zip,然后进行了充气。它确实包含
    META-INF\maven\org.swinglabs.swingx\swingx-all\POM.XML:
    <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>
      <parent>
        <artifactId>swingx-project</artifactId>
        <groupId>org.swinglabs.swingx</groupId>
        <version>1.6.4</version>
        <relativePath>../pom.xml</relativePath>
      </parent>
      <artifactId>swingx-all</artifactId>
      <packaging>jar</packaging>
      <name>SwingX Complete</name>
      <description>A Maven project to aggregate all modules into a single artifact.</description>
      <properties>
        <project.generatedDependencies>${project.generatedSourcesDirectoy}/dependencies</project.generatedDependencies>
      </properties>
      <!-- make the dependent swingx modules optional, since we're aggregating -->
      <dependencies>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>swingx-graphics</artifactId>
          <version>${project.version}</version>
          <type>jar</type>
          <scope>compile</scope>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>swingx-core</artifactId>
          <version>${project.version}</version>
          <type>jar</type>
          <scope>compile</scope>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>swingx-mavensupport</artifactId>
          <version>${project.version}</version>
          <type>jar</type>
          <scope>compile</scope>
          <optional>true</optional>
        </dependency>
      </dependencies>
      <profiles>
        <profile>
          <id>jvnet-release</id>
          <build>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>
                <executions>
                  <execution>
                    <id>src-dependencies</id>
                    <phase>generate-sources</phase>
                    <goals>
                      <goal>unpack-dependencies</goal>
                    </goals>
                    <configuration>
                      <classifier>sources</classifier>
                      <includeGroupIds>${project.groupId}</includeGroupIds>
                      <excludeArtifactIds>swingx-mavensupport</excludeArtifactIds>
                      <failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
                      <outputDirectory>${project.generatedDependencies}</outputDirectory>
                    </configuration>
                  </execution>
                </executions>
              </plugin>
              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.4</version>
                <executions>
                  <execution>
                    <id>add-dependencies-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                      <goal>add-source</goal>
                    </goals>
                    <configuration>
                      <sources>
                        <source>${project.generatedDependencies}</source>
                      </sources>
                    </configuration>
                  </execution>
                  <execution>
                    <id>add-dependencies-resource</id>
                    <phase>generate-resources</phase>
                    <goals>
                      <goal>add-resource</goal>
                    </goals>
                    <configuration>
                      <resources>
                        <resource>
                          <directory>${project.generatedDependencies}</directory>
                          <excludes>
                            <exclude>**/*.java</exclude>
                          </excludes>
                        </resource>
                      </resources>
                    </configuration>
                  </execution>
                </executions>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                  <archive>
                    <manifestFile>${project.generatedAnnotations}/META-INF/MANIFEST.MF</manifestFile>
                  </archive>
                </configuration>
              </plugin>
            </plugins>
          </build>
        </profile>
      </profiles>
    </project>
    

    当我切换到POM.XML所在的上述目录并进行mvn安装时,它肯定会建立很多东西..但还说:



    这是因为src目录不存在。这是有道理的,因为据说有问题的.jar文件仅是二进制文件,但是我希望某些Maven目标可以下载源代码或其他内容...如果仅是二进制文件,为什么还需要构建它?使困惑。

    到那时,我可能可以将src目录从第一个zip文件复制到第二个,或者将pom.xml从第二个zip文件复制到第一个。是一种更直接的方式。

    顺便说一句,在同一网页上还有第三个文件,swingx-mavensupport-1.6.4.jar

    因此,我下载了该文件,将其重命名为.zip,然后膨胀,找到了以下文件:
    META-INF\maven\org.swinglabs.swingx\swingx-mavensupport\POM.XML:
    <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>
      <parent>
        <artifactId>swingx-project</artifactId>
        <groupId>org.swinglabs.swingx</groupId>
        <version>1.6.4</version>
        <relativePath>../pom.xml</relativePath>
      </parent>
      <artifactId>swingx-mavensupport</artifactId>
      <name>SwingX Maven Support</name>
    </project>
    

    更改到其目录并运行mvn.install

    但是,这提示缺少大量文件。

    我一定弄错了。正确的方法是什么?

    最佳答案

    使用以下URL进行SVN check out :https://svn.java.net/svn/swingx~svn
    在主干中,有一个正确的pom.xml文件(其中许多文件用于不同的 Artifact ),因此您可以轻松地自己构建项目。



    这是在Maven中打包和分发源的默认方式。

    09-30 17:49