mirror of https://github.com/apache/ant-ivy
Added makepom option to main/standalone
This close PR #71 at github.com/apache/ant-ivy
This commit is contained in:
parent
198af5cdf1
commit
73f7cf413d
|
|
@ -20,3 +20,4 @@ test/repositories/norevision/ivy-mod1.1.xml
|
||||||
test/repositories/norevision/mod1.1.jar
|
test/repositories/norevision/mod1.1.jar
|
||||||
test/test-repo/bundlerepo/*.jar
|
test/test-repo/bundlerepo/*.jar
|
||||||
test/test-repo/ivyrepo/org.apache.ivy.osgi
|
test/test-repo/ivyrepo/org.apache.ivy.osgi
|
||||||
|
out/
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,7 @@ For details about the following changes, check our JIRA install at link:https://
|
||||||
- NEW: Lets SSH-based resolvers use an `~/.ssh/config` file to find username/hostname/keyfile options (Thanks to Colin Stanfill)
|
- NEW: Lets SSH-based resolvers use an `~/.ssh/config` file to find username/hostname/keyfile options (Thanks to Colin Stanfill)
|
||||||
- NEW: Add ivy.maven.lookup.sources and ivy.maven.lookup.javadoc variables to control the lookup of the additional artifacts. Defaults to true, for backward compatibility (jira:IVY-1529[])
|
- NEW: Add ivy.maven.lookup.sources and ivy.maven.lookup.javadoc variables to control the lookup of the additional artifacts. Defaults to true, for backward compatibility (jira:IVY-1529[])
|
||||||
- NEW: Add (conditional) support for SHA-256, SHA-512 and SHA-384 checksum algorithms (jira:IVY-1554[]) (Thanks to Jaikiran Pai)
|
- NEW: Add (conditional) support for SHA-256, SHA-512 and SHA-384 checksum algorithms (jira:IVY-1554[]) (Thanks to Jaikiran Pai)
|
||||||
|
- NEW: The standalone Ivy jar can now be used to generate a pom file for the resolved module, using the `makepom` option (Thanks to link:https://github.com/aanno[aanno])
|
||||||
|
|
||||||
|
|
||||||
////
|
////
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,8 @@ import org.apache.ivy.core.resolve.ResolveOptions;
|
||||||
import org.apache.ivy.core.resolve.ResolveProcessException;
|
import org.apache.ivy.core.resolve.ResolveProcessException;
|
||||||
import org.apache.ivy.core.retrieve.RetrieveOptions;
|
import org.apache.ivy.core.retrieve.RetrieveOptions;
|
||||||
import org.apache.ivy.core.settings.IvySettings;
|
import org.apache.ivy.core.settings.IvySettings;
|
||||||
|
import org.apache.ivy.plugins.parser.m2.PomModuleDescriptorWriter;
|
||||||
|
import org.apache.ivy.plugins.parser.m2.PomWriterOptions;
|
||||||
import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter;
|
import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter;
|
||||||
import org.apache.ivy.plugins.report.XmlReportParser;
|
import org.apache.ivy.plugins.report.XmlReportParser;
|
||||||
import org.apache.ivy.util.DefaultMessageLogger;
|
import org.apache.ivy.util.DefaultMessageLogger;
|
||||||
|
|
@ -174,6 +176,10 @@ public final class Main {
|
||||||
new OptionBuilder("overwrite").description(
|
new OptionBuilder("overwrite").description(
|
||||||
"overwrite files in the repository if they exist").create())
|
"overwrite files in the repository if they exist").create())
|
||||||
|
|
||||||
|
.addCategory("makepom options")
|
||||||
|
.addOption(new OptionBuilder("makepom").arg("pomfilepath")
|
||||||
|
.description("Creates a pom file for the module").create())
|
||||||
|
|
||||||
.addCategory("http auth options")
|
.addCategory("http auth options")
|
||||||
.addOption(
|
.addOption(
|
||||||
new OptionBuilder("realm").arg("realm")
|
new OptionBuilder("realm").arg("realm")
|
||||||
|
|
@ -199,6 +205,7 @@ public final class Main {
|
||||||
new OptionBuilder("cp").arg("cp")
|
new OptionBuilder("cp").arg("cp")
|
||||||
.description("extra classpath to use when launching process").create())
|
.description("extra classpath to use when launching process").create())
|
||||||
|
|
||||||
|
|
||||||
.addCategory("message options")
|
.addCategory("message options")
|
||||||
.addOption(
|
.addOption(
|
||||||
new OptionBuilder("debug").description("set message level to debug").create())
|
new OptionBuilder("debug").description("set message level to debug").create())
|
||||||
|
|
@ -419,6 +426,12 @@ public final class Main {
|
||||||
.setOverwrite(line.hasOption("overwrite")));
|
.setOverwrite(line.hasOption("overwrite")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (line.hasOption("makepom")) {
|
||||||
|
final String pomFilePath = line.getOptionValue("makepom", "pom.xml");
|
||||||
|
final File pomFile = new File(pomFilePath);
|
||||||
|
PomModuleDescriptorWriter.write(md, pomFile, new PomWriterOptions());
|
||||||
|
Message.debug("Generated a pom file for module at " + pomFile);
|
||||||
|
}
|
||||||
if (line.hasOption("main")) {
|
if (line.hasOption("main")) {
|
||||||
// check if the option cp has been set
|
// check if the option cp has been set
|
||||||
List<File> fileList = getExtraClasspathFileList(line);
|
List<File> fileList = getExtraClasspathFileList(line);
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@
|
||||||
package org.apache.ivy;
|
package org.apache.ivy;
|
||||||
|
|
||||||
import org.apache.ivy.core.retrieve.RetrieveOptions;
|
import org.apache.ivy.core.retrieve.RetrieveOptions;
|
||||||
|
import org.apache.ivy.core.settings.IvySettings;
|
||||||
|
import org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser;
|
||||||
import org.apache.ivy.util.CacheCleaner;
|
import org.apache.ivy.util.CacheCleaner;
|
||||||
import org.apache.ivy.util.cli.CommandLine;
|
import org.apache.ivy.util.cli.CommandLine;
|
||||||
import org.apache.ivy.util.cli.ParseException;
|
import org.apache.ivy.util.cli.ParseException;
|
||||||
|
|
@ -26,6 +28,7 @@ import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.ExpectedException;
|
import org.junit.rules.ExpectedException;
|
||||||
|
import org.junit.rules.TemporaryFolder;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
|
@ -36,6 +39,7 @@ import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
|
@ -46,6 +50,9 @@ public class MainTest {
|
||||||
@Rule
|
@Rule
|
||||||
public ExpectedException expExc = ExpectedException.none();
|
public ExpectedException expExc = ExpectedException.none();
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public TemporaryFolder tempDir = new TemporaryFolder();
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
cache = new File("build/cache");
|
cache = new File("build/cache");
|
||||||
|
|
@ -182,6 +189,25 @@ public class MainTest {
|
||||||
assertTrue("Content at " + retrieveArtifactPath + " was not overwritten by retrieve task", Files.readAllBytes(retrieveArtifactPath).length > 0);
|
assertTrue("Content at " + retrieveArtifactPath + " was not overwritten by retrieve task", Files.readAllBytes(retrieveArtifactPath).length > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests that the {@code makepom} option works as expected
|
||||||
|
*
|
||||||
|
* @throws Exception if something goes wrong
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testMakePom() throws Exception {
|
||||||
|
final String pomFilePath = this.tempDir.getRoot().getAbsolutePath() + File.separator + "testmakepom.xml";
|
||||||
|
final String[] args = new String[]{"-settings", "test/repositories/ivysettings.xml", "-makepom", pomFilePath,
|
||||||
|
"-ivy", "test/repositories/1/org1/mod1.1/ivys/ivy-1.0.xml"};
|
||||||
|
final CommandLine parsedCommand = Main.getParser().parse(args);
|
||||||
|
final String parsedMakePomPath = parsedCommand.getOptionValue("makepom");
|
||||||
|
assertEquals("Unexpected makepom parsed", pomFilePath, parsedMakePomPath);
|
||||||
|
assertFalse("pom file " + pomFilePath + " already exists", new File(pomFilePath).exists());
|
||||||
|
// run the command
|
||||||
|
run(args);
|
||||||
|
assertTrue("pom file hasn't been generated at " + pomFilePath, new File(pomFilePath).isFile());
|
||||||
|
}
|
||||||
|
|
||||||
private void run(String[] args) throws Exception {
|
private void run(String[] args) throws Exception {
|
||||||
Main.run(Main.getParser(), args);
|
Main.run(Main.getParser(), args);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue