title: How to download and compile SwingX
body: <p>This must be mostly a newbie Maven question.</p>
  
  <p>Since SwingX migrated to Kenai, there are warnings all over the website that many links are broken.. so here is my best attempt.</p>
  
  <ol>
  <li>I went to <a href="https://java.net/projects/swingx/downloads/directory/releases" rel="noreferrer">https://java.net/projects/swingx/downloads/directory/releases</a></li>
  <li>Clicked on "SwingX 1.6.4 All - Sources"  (really a non-intuitive, hit-or-miss choice for me, but perhaps it's a naming convention other people understand?)</li>
  <li>This downloads swingx-all-1.6.4-sources.jar (why is it even a jar and not a zip?)</li>
  </ol>
  
  <p>However, this source jar does not contain POM.XML. </p>
  
  <p>So, I downloaded swingx-all-1.6.4.jar from the same link, renamed it to .zip, inflated. It does contain 
      META-INF\maven\org.swinglabs.swingx\swingx-all\POM.XML:</p>
  
  <pre><code>&lt;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"&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;parent&gt;
      &lt;artifactId&gt;swingx-project&lt;/artifactId&gt;
      &lt;groupId&gt;org.swinglabs.swingx&lt;/groupId&gt;
      &lt;version&gt;1.6.4&lt;/version&gt;
      &lt;relativePath&gt;../pom.xml&lt;/relativePath&gt;
    &lt;/parent&gt;
    &lt;artifactId&gt;swingx-all&lt;/artifactId&gt;
    &lt;packaging&gt;jar&lt;/packaging&gt;
    &lt;name&gt;SwingX Complete&lt;/name&gt;
    &lt;description&gt;A Maven project to aggregate all modules into a single artifact.&lt;/description&gt;
    &lt;properties&gt;
      &lt;project.generatedDependencies&gt;${project.generatedSourcesDirectoy}/dependencies&lt;/project.generatedDependencies&gt;
    &lt;/properties&gt;
    &lt;!-- make the dependent swingx modules optional, since we're aggregating --&gt;
    &lt;dependencies&gt;
      &lt;dependency&gt;
        &lt;groupId&gt;${project.groupId}&lt;/groupId&gt;
        &lt;artifactId&gt;swingx-graphics&lt;/artifactId&gt;
        &lt;version&gt;${project.version}&lt;/version&gt;
        &lt;type&gt;jar&lt;/type&gt;
        &lt;scope&gt;compile&lt;/scope&gt;
        &lt;optional&gt;true&lt;/optional&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
        &lt;groupId&gt;${project.groupId}&lt;/groupId&gt;
        &lt;artifactId&gt;swingx-core&lt;/artifactId&gt;
        &lt;version&gt;${project.version}&lt;/version&gt;
        &lt;type&gt;jar&lt;/type&gt;
        &lt;scope&gt;compile&lt;/scope&gt;
        &lt;optional&gt;true&lt;/optional&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
        &lt;groupId&gt;${project.groupId}&lt;/groupId&gt;
        &lt;artifactId&gt;swingx-mavensupport&lt;/artifactId&gt;
        &lt;version&gt;${project.version}&lt;/version&gt;
        &lt;type&gt;jar&lt;/type&gt;
        &lt;scope&gt;compile&lt;/scope&gt;
        &lt;optional&gt;true&lt;/optional&gt;
      &lt;/dependency&gt;
    &lt;/dependencies&gt;
    &lt;profiles&gt;
      &lt;profile&gt;
        &lt;id&gt;jvnet-release&lt;/id&gt;
        &lt;build&gt;
          &lt;plugins&gt;
            &lt;plugin&gt;
              &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
              &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
              &lt;version&gt;2.4&lt;/version&gt;
              &lt;executions&gt;
                &lt;execution&gt;
                  &lt;id&gt;src-dependencies&lt;/id&gt;
                  &lt;phase&gt;generate-sources&lt;/phase&gt;
                  &lt;goals&gt;
                    &lt;goal&gt;unpack-dependencies&lt;/goal&gt;
                  &lt;/goals&gt;
                  &lt;configuration&gt;
                    &lt;classifier&gt;sources&lt;/classifier&gt;
                    &lt;includeGroupIds&gt;${project.groupId}&lt;/includeGroupIds&gt;
                    &lt;excludeArtifactIds&gt;swingx-mavensupport&lt;/excludeArtifactIds&gt;
                    &lt;failOnMissingClassifierArtifact&gt;false&lt;/failOnMissingClassifierArtifact&gt;
                    &lt;outputDirectory&gt;${project.generatedDependencies}&lt;/outputDirectory&gt;
                  &lt;/configuration&gt;
                &lt;/execution&gt;
              &lt;/executions&gt;
            &lt;/plugin&gt;
            &lt;plugin&gt;
              &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
              &lt;artifactId&gt;build-helper-maven-plugin&lt;/artifactId&gt;
              &lt;version&gt;1.4&lt;/version&gt;
              &lt;executions&gt;
                &lt;execution&gt;
                  &lt;id&gt;add-dependencies-source&lt;/id&gt;
                  &lt;phase&gt;generate-sources&lt;/phase&gt;
                  &lt;goals&gt;
                    &lt;goal&gt;add-source&lt;/goal&gt;
                  &lt;/goals&gt;
                  &lt;configuration&gt;
                    &lt;sources&gt;
                      &lt;source&gt;${project.generatedDependencies}&lt;/source&gt;
                    &lt;/sources&gt;
                  &lt;/configuration&gt;
                &lt;/execution&gt;
                &lt;execution&gt;
                  &lt;id&gt;add-dependencies-resource&lt;/id&gt;
                  &lt;phase&gt;generate-resources&lt;/phase&gt;
                  &lt;goals&gt;
                    &lt;goal&gt;add-resource&lt;/goal&gt;
                  &lt;/goals&gt;
                  &lt;configuration&gt;
                    &lt;resources&gt;
                      &lt;resource&gt;
                        &lt;directory&gt;${project.generatedDependencies}&lt;/directory&gt;
                        &lt;excludes&gt;
                          &lt;exclude&gt;**/*.java&lt;/exclude&gt;
                        &lt;/excludes&gt;
                      &lt;/resource&gt;
                    &lt;/resources&gt;
                  &lt;/configuration&gt;
                &lt;/execution&gt;
              &lt;/executions&gt;
            &lt;/plugin&gt;
            &lt;plugin&gt;
              &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
              &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;
              &lt;configuration&gt;
                &lt;archive&gt;
                  &lt;manifestFile&gt;${project.generatedAnnotations}/META-INF/MANIFEST.MF&lt;/manifestFile&gt;
                &lt;/archive&gt;
              &lt;/configuration&gt;
            &lt;/plugin&gt;
          &lt;/plugins&gt;
        &lt;/build&gt;
      &lt;/profile&gt;
    &lt;/profiles&gt;
  &lt;/project&gt;
  </code></pre>
  
  <p>When I change to the above directory where POM.XML is located and do mvn install, it certainly builds a lot of stuff.. but also says:</p>
  
  <blockquote>
    <p>[INFO] skip non existing resourceDirectory
    F:\swingx\swingx-all-1.6.4\META-INF\m
    Maven\org.swinglabs.swingx\swingx-all\src\main\resources</p>
  </blockquote>
  
  <p>That's because the src directory is nonexistent. Which makes sense, because the .jar files in question is said to be binaries only, but I was hoping some Maven target would download sources or something... and if it's binary only, why does it need to be built? Confused.</p>
  
  <p>At that point, I could probably either copy the src directory from the first zip file to the second, or copy the pom.xml from the second file to the first.. but I am having a feeling I am missing something, and there has to be a more straightforward way.</p>
  
  <p>BTW, there is a third file at the same web page, swingx-mavensupport-1.6.4.jar</p>
  
  <p>So I downloaded that, renamed it to .zip, inflated, found this file:
     META-INF\maven\org.swinglabs.swingx\swingx-mavensupport\POM.XML:</p>
  
  <pre><code>&lt;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"&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
    &lt;parent&gt;
      &lt;artifactId&gt;swingx-project&lt;/artifactId&gt;
      &lt;groupId&gt;org.swinglabs.swingx&lt;/groupId&gt;
      &lt;version&gt;1.6.4&lt;/version&gt;
      &lt;relativePath&gt;../pom.xml&lt;/relativePath&gt;
    &lt;/parent&gt;
    &lt;artifactId&gt;swingx-mavensupport&lt;/artifactId&gt;
    &lt;name&gt;SwingX Maven Support&lt;/name&gt;
  &lt;/project&gt;
  </code></pre>
  
  <p>Changed to its directory and ran mvn.install</p>
  
  <p>However, that complained at the lack of a whole lot of files.</p>
  
  <p>I must be getting it all wrong. What's the right way?</p>