This is an automated email from the ASF dual-hosted git repository.
sjaranowski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-help-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 6071f4f Migrate JUnit 3/4 based tests to JUnit 5
6071f4f is described below
commit 6071f4fd0e49c596c54c2d183588a3eb0f24fe8b
Author: Slawomir Jaranowski <[email protected]>
AuthorDate: Fri Oct 31 19:02:06 2025 +0100
Migrate JUnit 3/4 based tests to JUnit 5
---
pom.xml | 19 +-
.../maven/plugins/help/ActiveProfilesMojoTest.java | 87 +++++----
.../maven/plugins/help/AllProfilesMojoTest.java | 204 ++++++++++-----------
.../maven/plugins/help/DescribeMojoTest.java | 40 ++--
.../maven/plugins/help/EvaluateMojoTest.java | 157 ++++++----------
.../help/stubs/DefaultMavenProjectStub.java | 55 ------
.../unit/active-profiles/plugin-config.xml | 37 ----
.../resources/unit/all-profiles/plugin-config.xml | 37 ----
.../default-configuration-plugin-config.xml | 41 -----
.../unit/evaluate/plugin-config-output.xml | 38 ----
.../unit/evaluate/plugin-config-quiet-stdout.xml | 39 ----
src/test/resources/unit/evaluate/plugin-config.xml | 37 ----
12 files changed, 237 insertions(+), 554 deletions(-)
diff --git a/pom.xml b/pom.xml
index 776a3a7..9592a66 100644
--- a/pom.xml
+++ b/pom.xml
@@ -224,22 +224,15 @@
<!-- test -->
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.13.2</version>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.plugin-testing</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
- <version>3.3.0</version>
+ <version>3.4.0</version>
<scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
@@ -254,6 +247,12 @@
<version>4.11.0</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-junit-jupiter</artifactId>
+ <version>4.11.0</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git
a/src/test/java/org/apache/maven/plugins/help/ActiveProfilesMojoTest.java
b/src/test/java/org/apache/maven/plugins/help/ActiveProfilesMojoTest.java
index a9cf87b..f387631 100644
--- a/src/test/java/org/apache/maven/plugins/help/ActiveProfilesMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/help/ActiveProfilesMojoTest.java
@@ -18,46 +18,67 @@
*/
package org.apache.maven.plugins.help;
-import java.io.File;
-import java.io.FileInputStream;
+import javax.inject.Inject;
+
import java.io.IOException;
-import java.util.Arrays;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoParameter;
+import org.apache.maven.api.plugin.testing.MojoTest;
+import org.apache.maven.execution.MavenSession;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.IOUtil;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
-import static org.mockito.Mockito.mock;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.when;
/**
* Test class for the active-profiles mojo of the Help Plugin.
*/
-public class ActiveProfilesMojoTest extends AbstractMojoTestCase {
+@MojoTest
+class ActiveProfilesMojoTest {
+
+ @Inject
+ private MavenProject project;
+
+ @Inject
+ private MavenSession mavenSession;
+
+ @TempDir
+ private Path tempDir;
+ private Path outputPath;
+
+ @BeforeEach
+ void setup() throws IOException {
+
when(mavenSession.getProjects()).thenReturn(Collections.singletonList(project));
+
+ outputPath = Files.createTempFile(tempDir, "maven-help-plugin-test-",
".txt");
+ mavenSession.getUserProperties().setProperty("outputPath",
outputPath.toString());
+ }
/**
* Tests that profiles activated in the settings are resolved.
*
* @throws Exception in case of errors.
*/
- public void testActiveProfilesFromSettings() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/active-profiles/plugin-config.xml");
-
- ActiveProfilesMojo mojo = (ActiveProfilesMojo)
lookupMojo("active-profiles", testPom);
-
- MavenProject project = mock(MavenProject.class);
+ @Test
+ @InjectMojo(goal = "active-profiles")
+ @MojoParameter(name = "output", value = "${outputPath}")
+ void testActiveProfilesFromSettings(ActiveProfilesMojo mojo) throws
Exception {
when(project.getInjectedProfileIds())
- .thenReturn(getProfiles(Arrays.asList("from-settings"),
Collections.<String>emptyList()));
-
- setUpMojo(mojo, Arrays.asList(project), "from-settings.txt");
+
.thenReturn(getProfiles(Collections.singletonList("from-settings"),
Collections.emptyList()));
mojo.execute();
- String file = readFile("from-settings.txt");
+ String file = readOutput();
assertTrue(file.contains("from-settings (source: external)"));
}
@@ -66,20 +87,16 @@ public class ActiveProfilesMojoTest extends
AbstractMojoTestCase {
*
* @throws Exception in case of errors.
*/
- public void testActiveProfilesFromPom() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/active-profiles/plugin-config.xml");
-
- ActiveProfilesMojo mojo = (ActiveProfilesMojo)
lookupMojo("active-profiles", testPom);
-
- MavenProject project = mock(MavenProject.class);
+ @Test
+ @InjectMojo(goal = "active-profiles")
+ @MojoParameter(name = "output", value = "${outputPath}")
+ void testActiveProfilesFromPom(ActiveProfilesMojo mojo) throws Exception {
when(project.getInjectedProfileIds())
- .thenReturn(getProfiles(Collections.<String>emptyList(),
Arrays.asList("from-pom")));
-
- setUpMojo(mojo, Arrays.asList(project), "from-pom.txt");
+ .thenReturn(getProfiles(Collections.emptyList(),
Collections.singletonList("from-pom")));
mojo.execute();
- String file = readFile("from-pom.txt");
+ String file = readOutput();
assertTrue(file.contains("from-pom (source:
org.apache.maven.test:test:1.0)"));
}
@@ -87,21 +104,11 @@ public class ActiveProfilesMojoTest extends
AbstractMojoTestCase {
Map<String, List<String>> profiles = new HashMap<>();
profiles.put("external", externals); // from settings
profiles.put("org.apache.maven.test:test:1.0", pom); // from POM
- profiles.put("", Collections.<String>emptyList()); // from super POM
+ profiles.put("", Collections.emptyList()); // from super POM
return profiles;
}
- private void setUpMojo(ActiveProfilesMojo mojo, List<MavenProject>
projects, String output)
- throws IllegalAccessException {
- setVariableValueToObject(mojo, "projects", projects);
- setVariableValueToObject(
- mojo, "output", new File(getBasedir(),
"target/test-classes/unit/active-profiles/" + output));
- }
-
- private String readFile(String path) throws IOException {
- try (FileInputStream fis =
- new FileInputStream(new File(getBasedir(),
"target/test-classes/unit/active-profiles/" + path))) {
- return IOUtil.toString(fis);
- }
+ private String readOutput() throws IOException {
+ return new String(Files.readAllBytes(outputPath));
}
}
diff --git
a/src/test/java/org/apache/maven/plugins/help/AllProfilesMojoTest.java
b/src/test/java/org/apache/maven/plugins/help/AllProfilesMojoTest.java
index 01c1aa8..f900783 100644
--- a/src/test/java/org/apache/maven/plugins/help/AllProfilesMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/help/AllProfilesMojoTest.java
@@ -18,36 +18,85 @@
*/
package org.apache.maven.plugins.help;
-import java.io.File;
-import java.io.FileInputStream;
+import javax.inject.Inject;
+
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import org.apache.maven.api.di.Provides;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoParameter;
+import org.apache.maven.api.plugin.testing.MojoTest;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
-import org.apache.maven.monitor.logging.DefaultLog;
-import org.apache.maven.plugin.Mojo;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.logging.LoggerManager;
-import org.codehaus.plexus.util.IOUtil;
+import org.apache.maven.settings.Settings;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.io.TempDir;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
/**
* Test class for the all-profiles mojo of the Help Plugin.
*/
-public class AllProfilesMojoTest extends AbstractMojoTestCase {
+@ExtendWith(MockitoExtension.class)
+@MojoTest
+class AllProfilesMojoTest {
+
+ @Inject
+ private MavenProject project;
+
+ @Inject
+ private MavenSession mavenSession;
+
+ @Mock
+ private Settings settings;
+
+ @Mock
+ private Model projectModel;
+
+ @Mock
+ private Log log;
+
+ @TempDir
+ private Path tempDir;
- private InterceptingLog interceptingLogger;
+ private Path outputPath;
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- interceptingLogger =
- new
InterceptingLog(getContainer().lookup(LoggerManager.class).getLoggerForComponent(Mojo.ROLE));
+ @Provides
+ private Log provideLogger() {
+ return log;
+ }
+
+ private final List<Profile> projectProfiles = new ArrayList<>();
+ private final List<Profile> projectActiveProfiles = new ArrayList<>();
+ private final List<org.apache.maven.settings.Profile> settingsProfiles =
new ArrayList<>();
+
+ @BeforeEach
+ void setup() throws IOException {
+
when(mavenSession.getProjects()).thenReturn(Collections.singletonList(project));
+ when(mavenSession.getSettings()).thenReturn(settings);
+ when(settings.getProfiles()).thenReturn(settingsProfiles);
+
+ when(project.getActiveProfiles()).thenReturn(projectActiveProfiles);
+ when(project.getModel()).thenReturn(projectModel);
+ when(projectModel.getProfiles()).thenReturn(projectProfiles);
+
+ outputPath = Files.createTempFile(tempDir, "maven-help-plugin-test-",
".txt");
+ mavenSession.getUserProperties().setProperty("outputPath",
outputPath.toString());
}
/**
@@ -55,20 +104,12 @@ public class AllProfilesMojoTest extends
AbstractMojoTestCase {
*
* @throws Exception in case of errors.
*/
- public void testNoProfiles() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/all-profiles/plugin-config.xml");
-
- AllProfilesMojo mojo = (AllProfilesMojo) lookupMojo("all-profiles",
testPom);
-
- setUpMojo(
- mojo,
- Arrays.<MavenProject>asList(new MavenProjectStub()),
- Collections.<org.apache.maven.settings.Profile>emptyList(),
- "empty.txt");
-
+ @Test
+ @InjectMojo(goal = "all-profiles")
+ void testNoProfiles(AllProfilesMojo mojo) throws Exception {
mojo.execute();
- assertTrue(interceptingLogger.warnLogs.contains("No profiles
detected!"));
+ verify(log).warn("No profiles detected!");
}
/**
@@ -76,26 +117,24 @@ public class AllProfilesMojoTest extends
AbstractMojoTestCase {
*
* @throws Exception in case of errors.
*/
- public void testProfileFromPom() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/all-profiles/plugin-config.xml");
-
- AllProfilesMojo mojo = (AllProfilesMojo) lookupMojo("all-profiles",
testPom);
+ @Test
+ @InjectMojo(goal = "all-profiles")
+ @MojoParameter(name = "output", value = "${outputPath}")
+ void testProfileFromPom(AllProfilesMojo mojo) throws Exception {
+ projectProfiles.add(newPomProfile("pro-1", "pom"));
+ projectProfiles.add(newPomProfile("pro-2", "pom"));
- MavenProjectStub project = new MavenProjectStub();
- project.getModel().setProfiles(Arrays.asList(newPomProfile("pro-1",
"pom"), newPomProfile("pro-2", "pom")));
- project.setParent(new MavenProjectStub());
-
project.getParent().getModel().setProfiles(Arrays.asList(newPomProfile("pro-3",
"pom")));
- project.setActiveProfiles(Arrays.asList(newPomProfile("pro-1",
"pom")));
+ Model parentModel = mock(Model.class);
+
when(parentModel.getProfiles()).thenReturn(Collections.singletonList(newPomProfile("pro-3",
"pom")));
+ MavenProject parentProject = mock(MavenProject.class);
+ when(parentProject.getModel()).thenReturn(parentModel);
+ when(project.getParent()).thenReturn(parentProject);
- setUpMojo(
- mojo,
- Arrays.<MavenProject>asList(project),
- Collections.<org.apache.maven.settings.Profile>emptyList(),
- "profiles-from-pom.txt");
+ projectActiveProfiles.add(newPomProfile("pro-1", "pom"));
mojo.execute();
- String file = readFile("profiles-from-pom.txt");
+ String file = readOutput();
assertTrue(file.contains("Profile Id: pro-1 (Active: true, Source:
pom)"));
assertTrue(file.contains("Profile Id: pro-2 (Active: false, Source:
pom)"));
assertTrue(file.contains("Profile Id: pro-3 (Active: false, Source:
pom)"));
@@ -106,25 +145,20 @@ public class AllProfilesMojoTest extends
AbstractMojoTestCase {
*
* @throws Exception in case of errors.
*/
- public void testProfileFromParentPom() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/all-profiles/plugin-config.xml");
-
- AllProfilesMojo mojo = (AllProfilesMojo) lookupMojo("all-profiles",
testPom);
-
- MavenProjectStub project = new MavenProjectStub();
- project.setParent(new MavenProjectStub());
-
project.getParent().getModel().setProfiles(Arrays.asList(newPomProfile("pro-1",
"pom")));
-
project.getParent().setActiveProfiles(Arrays.asList(newPomProfile("pro-1",
"pom")));
-
- setUpMojo(
- mojo,
- Arrays.<MavenProject>asList(project),
- Collections.<org.apache.maven.settings.Profile>emptyList(),
- "profiles-from-parent-pom.txt");
+ @Test
+ @InjectMojo(goal = "all-profiles")
+ @MojoParameter(name = "output", value = "${outputPath}")
+ void testProfileFromParentPom(AllProfilesMojo mojo) throws Exception {
+ Model parentModel = mock(Model.class);
+
when(parentModel.getProfiles()).thenReturn(Collections.singletonList(newPomProfile("pro-1",
"pom")));
+ MavenProject parentProject = mock(MavenProject.class);
+ when(parentProject.getModel()).thenReturn(parentModel);
+
when(parentProject.getActiveProfiles()).thenReturn(Collections.singletonList(newPomProfile("pro-1",
"pom")));
+ when(project.getParent()).thenReturn(parentProject);
mojo.execute();
- String file = readFile("profiles-from-parent-pom.txt");
+ String file = readOutput();
assertTrue(file.contains("Profile Id: pro-1 (Active: true, Source:
pom)"));
}
@@ -133,22 +167,18 @@ public class AllProfilesMojoTest extends
AbstractMojoTestCase {
*
* @throws Exception in case of errors.
*/
- public void testProfileFromSettings() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/all-profiles/plugin-config.xml");
-
- AllProfilesMojo mojo = (AllProfilesMojo) lookupMojo("all-profiles",
testPom);
-
- MavenProject project = new MavenProjectStub();
- project.setActiveProfiles(Arrays.asList(newPomProfile("settings-1",
"settings.xml")));
+ @Test
+ @InjectMojo(goal = "all-profiles")
+ @MojoParameter(name = "output", value = "${outputPath}")
+ void testProfileFromSettings(AllProfilesMojo mojo) throws Exception {
+ projectActiveProfiles.add(newPomProfile("settings-1", "settings.xml"));
- List<org.apache.maven.settings.Profile> settingsProfiles = new
ArrayList<>();
settingsProfiles.add(newSettingsProfile("settings-1"));
settingsProfiles.add(newSettingsProfile("settings-2"));
- setUpMojo(mojo, Arrays.asList(project), settingsProfiles,
"profiles-from-settings.txt");
mojo.execute();
- String file = readFile("profiles-from-settings.txt");
+ String file = readOutput();
assertTrue(file.contains("Profile Id: settings-1 (Active: true,
Source: settings.xml)"));
assertTrue(file.contains("Profile Id: settings-2 (Active: false,
Source: settings.xml)"));
}
@@ -166,37 +196,7 @@ public class AllProfilesMojoTest extends
AbstractMojoTestCase {
return profile;
}
- private void setUpMojo(
- AllProfilesMojo mojo,
- List<MavenProject> projects,
- List<org.apache.maven.settings.Profile> settingsProfiles,
- String output)
- throws IllegalAccessException {
- setVariableValueToObject(mojo, "projects", projects);
- setVariableValueToObject(mojo, "settingsProfiles", settingsProfiles);
- setVariableValueToObject(
- mojo, "output", new File(getBasedir(),
"target/test-classes/unit/active-profiles/" + output));
- setVariableValueToObject(mojo, "log", interceptingLogger);
- }
-
- private String readFile(String path) throws IOException {
- try (FileInputStream fis =
- new FileInputStream(new File(getBasedir(),
"target/test-classes/unit/active-profiles/" + path))) {
- return IOUtil.toString(fis);
- }
- }
-
- private static final class InterceptingLog extends DefaultLog {
- final List<String> warnLogs = new ArrayList<>();
-
- InterceptingLog(Logger logger) {
- super(logger);
- }
-
- @Override
- public void warn(CharSequence content) {
- super.warn(content);
- warnLogs.add(content.toString());
- }
+ private String readOutput() throws IOException {
+ return new String(Files.readAllBytes(outputPath));
}
}
diff --git a/src/test/java/org/apache/maven/plugins/help/DescribeMojoTest.java
b/src/test/java/org/apache/maven/plugins/help/DescribeMojoTest.java
index 1701328..fe458c6 100644
--- a/src/test/java/org/apache/maven/plugins/help/DescribeMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/help/DescribeMojoTest.java
@@ -36,13 +36,13 @@ import org.apache.maven.plugin.version.PluginVersionResult;
import org.apache.maven.plugins.help.DescribeMojo.PluginInfo;
import org.apache.maven.project.MavenProject;
import org.eclipse.aether.RepositorySystemSession;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.Mockito.mock;
@@ -53,10 +53,10 @@ import static org.mockito.Mockito.when;
/**
* @author <a href="mailto:[email protected]">Vincent Siveton</a>
*/
-public class DescribeMojoTest {
+class DescribeMojoTest {
@Test
- public void testGetExpressionsRoot()
+ void testGetExpressionsRoot()
throws NoSuchMethodException, SecurityException,
IllegalAccessException, IllegalArgumentException,
InvocationTargetException {
DescribeMojo describeMojo = new DescribeMojo(null, null, null, null,
null, null, null);
@@ -67,7 +67,7 @@ public class DescribeMojoTest {
}
@Test
- public void testValidExpression() throws Exception {
+ void testValidExpression() throws Exception {
StringBuilder sb = new StringBuilder();
MojoDescriptor md = new MojoDescriptor();
Parameter parameter = new Parameter();
@@ -89,7 +89,7 @@ public class DescribeMojoTest {
}
@Test
- public void testInvalidExpression() throws Exception {
+ void testInvalidExpression() throws Exception {
StringBuilder sb = new StringBuilder();
MojoDescriptor md = new MojoDescriptor();
Parameter parameter = new Parameter();
@@ -97,7 +97,7 @@ public class DescribeMojoTest {
parameter.setExpression("${project.build.directory}/generated-sources/foobar");
// this is a defaultValue
md.addParameter(parameter);
- String ls = System.getProperty("line.separator");
+ String ls = System.lineSeparator();
Method describeMojoParameters = DescribeMojo.class.getDeclaredMethod(
"describeMojoParameters", MojoDescriptor.class,
StringBuilder.class);
@@ -114,7 +114,7 @@ public class DescribeMojoTest {
}
@Test
- public void testParsePluginInfoGAV() throws Throwable {
+ void testParsePluginInfoGAV() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
setFieldWithReflection(mojo, "groupId", "org.test");
setFieldWithReflection(mojo, "artifactId", "test");
@@ -130,7 +130,7 @@ public class DescribeMojoTest {
}
@Test
- public void testParsePluginInfoPluginPrefix() throws Throwable {
+ void testParsePluginInfoPluginPrefix() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
setFieldWithReflection(mojo, "plugin", "help");
@@ -150,7 +150,7 @@ public class DescribeMojoTest {
}
@Test
- public void testParsePluginInfoPluginGA() throws Throwable {
+ void testParsePluginInfoPluginGA() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
setFieldWithReflection(mojo, "plugin", "org.test:test");
@@ -164,7 +164,7 @@ public class DescribeMojoTest {
}
@Test
- public void testParsePluginInfoPluginGAV() throws Throwable {
+ void testParsePluginInfoPluginGAV() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
setFieldWithReflection(mojo, "plugin", "org.test:test:1.0");
@@ -178,7 +178,7 @@ public class DescribeMojoTest {
}
@Test
- public void testParsePluginInfoPluginIncorrect() throws Throwable {
+ void testParsePluginInfoPluginIncorrect() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
setFieldWithReflection(mojo, "plugin", "org.test:test:1.0:invalid");
try {
@@ -191,7 +191,7 @@ public class DescribeMojoTest {
}
@Test
- public void testLookupPluginDescriptorPrefixWithVersion() throws Throwable
{
+ void testLookupPluginDescriptorPrefixWithVersion() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
PluginInfo pi = new PluginInfo();
@@ -233,7 +233,7 @@ public class DescribeMojoTest {
}
@Test
- public void testLookupPluginDescriptorPrefixWithoutVersion() throws
Throwable {
+ void testLookupPluginDescriptorPrefixWithoutVersion() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
PluginInfo pi = new PluginInfo();
@@ -279,7 +279,7 @@ public class DescribeMojoTest {
}
@Test
- public void testLookupPluginDescriptorGAV() throws Throwable {
+ void testLookupPluginDescriptorGAV() throws Throwable {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
PluginInfo pi = new PluginInfo();
@@ -317,7 +317,7 @@ public class DescribeMojoTest {
}
@Test
- public void testLookupPluginDescriptorGMissingA() {
+ void testLookupPluginDescriptorGMissingA() {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
PluginInfo pi = new PluginInfo();
pi.setGroupId("org.test");
@@ -333,7 +333,7 @@ public class DescribeMojoTest {
}
@Test
- public void testLookupPluginDescriptorAMissingG() {
+ void testLookupPluginDescriptorAMissingG() {
DescribeMojo mojo = new DescribeMojo(null, null, null, null, null,
null, null);
PluginInfo pi = new PluginInfo();
pi.setArtifactId("test");
diff --git a/src/test/java/org/apache/maven/plugins/help/EvaluateMojoTest.java
b/src/test/java/org/apache/maven/plugins/help/EvaluateMojoTest.java
index 2dbeea3..eb4a016 100644
--- a/src/test/java/org/apache/maven/plugins/help/EvaluateMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/help/EvaluateMojoTest.java
@@ -19,24 +19,25 @@
package org.apache.maven.plugins.help;
import java.io.ByteArrayOutputStream;
-import java.io.File;
import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.maven.monitor.logging.DefaultLog;
-import org.apache.maven.plugin.Mojo;
+import org.apache.maven.api.di.Provides;
+import org.apache.maven.api.plugin.testing.InjectMojo;
+import org.apache.maven.api.plugin.testing.MojoParameter;
+import org.apache.maven.api.plugin.testing.MojoTest;
import org.apache.maven.plugin.PluginParameterExpressionEvaluator;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-import org.apache.maven.settings.Settings;
-import
org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
+import org.apache.maven.plugin.logging.Log;
import org.codehaus.plexus.components.interactivity.InputHandler;
-import org.codehaus.plexus.logging.Logger;
-import org.codehaus.plexus.logging.LoggerManager;
-
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.parallel.ResourceLock;
+import org.junit.jupiter.api.parallel.Resources;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import static
org.apache.maven.api.plugin.testing.MojoExtension.setVariableValueToObject;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -44,40 +45,48 @@ import static org.mockito.Mockito.when;
/**
* Test class for the evaluate mojo of the Help Plugin.
*/
-public class EvaluateMojoTest extends AbstractMojoTestCase {
+@ExtendWith(MockitoExtension.class)
+@MojoTest
+class EvaluateMojoTest {
+
+ @Mock
+ private Log log;
+
+ @Mock
+ private InputHandler inputHandler;
- private InterceptingLog interceptingLogger;
+ @Mock
+ private PluginParameterExpressionEvaluator expressionEvaluator;
+
+ @Provides
+ private Log provideLogger() {
+ return log;
+ }
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- interceptingLogger =
- new
InterceptingLog(getContainer().lookup(LoggerManager.class).getLoggerForComponent(Mojo.ROLE));
+ @Provides
+ private InputHandler provideInputHandler() {
+ return inputHandler;
}
/**
* Tests evaluation of an expression in interactive mode with a mock input
handler.
* @throws Exception in case of errors.
*/
- public void testEvaluateWithoutExpression() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/evaluate/plugin-config.xml");
-
- EvaluateMojo mojo = (EvaluateMojo) lookupMojo("evaluate", testPom);
-
- InputHandler inputHandler = mock(InputHandler.class);
+ @Test
+ @InjectMojo(goal = "evaluate")
+ void testEvaluateWithoutExpression(EvaluateMojo mojo) throws Exception {
when(inputHandler.readLine()).thenReturn("${project.groupId}", "0");
-
- ExpressionEvaluator expressionEvaluator =
mock(PluginParameterExpressionEvaluator.class);
when(expressionEvaluator.evaluate(anyString())).thenReturn("My
result");
+ when(log.isInfoEnabled()).thenReturn(true);
- setUpMojo(mojo, inputHandler, expressionEvaluator);
+ setVariableValueToObject(mojo, "evaluator", expressionEvaluator);
mojo.execute();
- String ls = System.getProperty("line.separator");
+ String ls = System.lineSeparator();
- assertTrue(interceptingLogger.infoLogs.contains(ls + "My result"));
- assertTrue(interceptingLogger.warnLogs.isEmpty());
+ verify(log).info(ls + "My result");
+ verify(log, times(0)).warn(anyString());
verify(expressionEvaluator).evaluate("${project.groupId}");
verify(inputHandler, times(2)).readLine();
}
@@ -86,25 +95,21 @@ public class EvaluateMojoTest extends AbstractMojoTestCase {
* Tests evaluation of an expression in interactive mode with a mock input
handler, when "output" is set.
* @throws Exception in case of errors.
*/
- public void testEvaluateWithoutExpressionWithOutput() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/evaluate/plugin-config-output.xml");
-
- EvaluateMojo mojo = (EvaluateMojo) lookupMojo("evaluate", testPom);
-
- InputHandler inputHandler = mock(InputHandler.class);
+ @Test
+ @InjectMojo(goal = "evaluate")
+ @MojoParameter(name = "output", value = "result.txt")
+ void testEvaluateWithoutExpressionWithOutput(EvaluateMojo mojo) throws
Exception {
when(inputHandler.readLine()).thenReturn("${project.artifactId}", "0");
-
- ExpressionEvaluator expressionEvaluator =
mock(PluginParameterExpressionEvaluator.class);
when(expressionEvaluator.evaluate(anyString())).thenReturn("My
result");
+ when(log.isInfoEnabled()).thenReturn(true);
- setUpMojo(mojo, inputHandler, expressionEvaluator);
+ setVariableValueToObject(mojo, "evaluator", expressionEvaluator);
mojo.execute();
- String ls = System.getProperty("line.separator");
-
- assertTrue(interceptingLogger.infoLogs.contains(ls + "My result"));
- assertFalse(interceptingLogger.warnLogs.isEmpty());
+ String ls = System.lineSeparator();
+ verify(log).info(ls + "My result");
+ verify(log).warn(anyString());
verify(expressionEvaluator).evaluate("${project.artifactId}");
verify(inputHandler, times(2)).readLine();
}
@@ -116,18 +121,18 @@ public class EvaluateMojoTest extends
AbstractMojoTestCase {
* @throws Exception in case of errors.
* @see <a href="https://issues.apache.org/jira/browse/MPH-144">MPH-144</a>
*/
- public void testEvaluateQuiteModeWithOutputOnStdout() throws Exception {
- File testPom = new File(getBasedir(),
"target/test-classes/unit/evaluate/plugin-config-quiet-stdout.xml");
-
- EvaluateMojo mojo = (EvaluateMojo) lookupMojo("evaluate", testPom);
-
- ExpressionEvaluator expressionEvaluator =
mock(PluginParameterExpressionEvaluator.class);
+ @Test
+ @ResourceLock(Resources.SYSTEM_OUT)
+ @InjectMojo(goal = "evaluate")
+ @MojoParameter(name = "forceStdout", value = "true")
+ @MojoParameter(name = "expression", value = "project.groupId")
+ void testEvaluateQuiteModeWithOutputOnStdout(EvaluateMojo mojo) throws
Exception {
when(expressionEvaluator.evaluate(anyString())).thenReturn("org.apache.maven.its.help");
// Quiet mode given on command line.(simulation)
- interceptingLogger.setInfoEnabled(false);
+ when(log.isInfoEnabled()).thenReturn(false);
- setUpMojo(mojo, null, expressionEvaluator);
+ setVariableValueToObject(mojo, "evaluator", expressionEvaluator);
PrintStream saveOut = System.out;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -142,50 +147,6 @@ public class EvaluateMojoTest extends AbstractMojoTestCase
{
String stdResult = baos.toString();
assertEquals("org.apache.maven.its.help", stdResult);
- assertTrue(interceptingLogger.warnLogs.isEmpty());
- }
-
- private void setUpMojo(EvaluateMojo mojo, InputHandler inputHandler,
ExpressionEvaluator expressionEvaluator)
- throws IllegalAccessException {
- setVariableValueToObject(mojo, "inputHandler", inputHandler);
- setVariableValueToObject(mojo, "log", interceptingLogger);
- setVariableValueToObject(mojo, "settings", new Settings());
- setVariableValueToObject(mojo, "project", new MavenProjectStub());
- setVariableValueToObject(mojo, "evaluator", expressionEvaluator);
- }
-
- private static final class InterceptingLog extends DefaultLog {
- private boolean isInfoEnabled;
-
- final List<String> infoLogs = new ArrayList<>();
-
- final List<String> warnLogs = new ArrayList<>();
-
- InterceptingLog(Logger logger) {
- super(logger);
- this.isInfoEnabled = true;
- }
-
- public void setInfoEnabled(boolean isInfoEnabled) {
- this.isInfoEnabled = isInfoEnabled;
- }
-
- public boolean isInfoEnabled() {
- return isInfoEnabled;
- }
-
- @Override
- public void info(CharSequence content) {
- if (this.isInfoEnabled) {
- super.info(content);
- infoLogs.add(content.toString());
- }
- }
-
- @Override
- public void warn(CharSequence content) {
- super.warn(content);
- warnLogs.add(content.toString());
- }
+ verify(log, times(0)).warn(anyString());
}
}
diff --git
a/src/test/java/org/apache/maven/plugins/help/stubs/DefaultMavenProjectStub.java
b/src/test/java/org/apache/maven/plugins/help/stubs/DefaultMavenProjectStub.java
deleted file mode 100644
index fdcd020..0000000
---
a/src/test/java/org/apache/maven/plugins/help/stubs/DefaultMavenProjectStub.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.maven.plugins.help.stubs;
-
-import java.io.FileReader;
-
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:[email protected]">Vincent Siveton</a>
- */
-public class DefaultMavenProjectStub extends MavenProjectStub {
- /**
- * Default constructor.
- */
- public DefaultMavenProjectStub() {
- MavenXpp3Reader pomReader = new MavenXpp3Reader();
- Model model;
-
- try {
- try (FileReader reader = new FileReader(getBasedir()
- +
"/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml"))
{
- model = pomReader.read(reader);
- }
- setModel(model);
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
-
- setGroupId(model.getGroupId());
- setArtifactId(model.getArtifactId());
- setVersion(model.getVersion());
- setName(model.getName());
- setUrl(model.getUrl());
- setPackaging(model.getPackaging());
- }
-}
diff --git a/src/test/resources/unit/active-profiles/plugin-config.xml
b/src/test/resources/unit/active-profiles/plugin-config.xml
deleted file mode 100644
index f53b10b..0000000
--- a/src/test/resources/unit/active-profiles/plugin-config.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.maven.its.help</groupId>
- <artifactId>active-profiles</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <url>http://maven.apache.org</url>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-help-plugin</artifactId>
- <configuration>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/src/test/resources/unit/all-profiles/plugin-config.xml
b/src/test/resources/unit/all-profiles/plugin-config.xml
deleted file mode 100644
index f53b10b..0000000
--- a/src/test/resources/unit/all-profiles/plugin-config.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.maven.its.help</groupId>
- <artifactId>active-profiles</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <url>http://maven.apache.org</url>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-help-plugin</artifactId>
- <configuration>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git
a/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
b/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
deleted file mode 100644
index 9cb843e..0000000
---
a/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>def.configuration</groupId>
- <artifactId>default-configuration</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <inceptionYear>2008</inceptionYear>
- <name>Maven Help Plugin Default Configuration Test</name>
- <url>http://maven.apache.org</url>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-help-plugin</artifactId>
- <configuration>
- <project
implementation="org.apache.maven.plugins.help.stubs.DefaultMavenProjectStub"/>
- <localRepository>${localRepository}</localRepository>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/src/test/resources/unit/evaluate/plugin-config-output.xml
b/src/test/resources/unit/evaluate/plugin-config-output.xml
deleted file mode 100644
index 1d28872..0000000
--- a/src/test/resources/unit/evaluate/plugin-config-output.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.maven.its.help</groupId>
- <artifactId>evaluate</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <url>http://maven.apache.org</url>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-help-plugin</artifactId>
- <configuration>
- <output>result.txt</output>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/src/test/resources/unit/evaluate/plugin-config-quiet-stdout.xml
b/src/test/resources/unit/evaluate/plugin-config-quiet-stdout.xml
deleted file mode 100644
index 0e9b41c..0000000
--- a/src/test/resources/unit/evaluate/plugin-config-quiet-stdout.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.maven.its.help</groupId>
- <artifactId>evaluate</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <url>http://maven.apache.org</url>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-help-plugin</artifactId>
- <configuration>
- <forceStdout>true</forceStdout>
- <expression>project.groupId</expression>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/src/test/resources/unit/evaluate/plugin-config.xml
b/src/test/resources/unit/evaluate/plugin-config.xml
deleted file mode 100644
index fb17d4e..0000000
--- a/src/test/resources/unit/evaluate/plugin-config.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<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/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.maven.its.help</groupId>
- <artifactId>evaluate</artifactId>
- <packaging>jar</packaging>
- <version>1.0-SNAPSHOT</version>
- <url>http://maven.apache.org</url>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-help-plugin</artifactId>
- <configuration>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>