[MPLUGIN-305] MojoAnnotationsScanner should have better control over dependency scanning
Introduce parameter mojoDependencies git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@1754998 13f79535-47bb-0310-9956-ffa450edef68master
parent
22fcf70b89
commit
372526b052
|
|
@ -167,6 +167,13 @@
|
|||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.surefire</groupId>
|
||||
<artifactId>maven-surefire-common</artifactId>
|
||||
<version>2.19.1</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- other -->
|
||||
<dependency>
|
||||
<groupId>org.apache.velocity</groupId>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
# 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.
|
||||
|
||||
invoker.goals.1 = clean process-classes
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
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/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.apache.maven.plugins.plugin.its</groupId>
|
||||
<artifactId>mplugin305</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>maven-plugin</packaging>
|
||||
|
||||
<url>https://issues.apache.org/jira/browse/MPLUGIN-305</url>
|
||||
|
||||
<properties>
|
||||
<mavenPluginPluginVersion>@project.version@</mavenPluginPluginVersion>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>2.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.plugin-tools</groupId>
|
||||
<artifactId>maven-plugin-annotations</artifactId>
|
||||
<version>${mavenPluginPluginVersion}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.surefire</groupId>
|
||||
<artifactId>maven-surefire-common</artifactId>
|
||||
<version>2.19.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-plugin-plugin</artifactId>
|
||||
<version>${mavenPluginPluginVersion}</version>
|
||||
<configuration>
|
||||
<extractors>
|
||||
<extractor>java-annotations</extractor>
|
||||
</extractors>
|
||||
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>mojo-descriptor</id>
|
||||
<goals>
|
||||
<goal>descriptor</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,289 @@
|
|||
package org.apache.maven.plugins.plugin.it;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
|
||||
import org.apache.maven.plugins.annotations.Mojo;
|
||||
import org.apache.maven.surefire.suite.RunResult;
|
||||
|
||||
@Mojo(name="custom-surefire")
|
||||
public class CustomSurefireMojo extends AbstractSurefireMojo {
|
||||
|
||||
public File getBasedir()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getClassesDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getDebugForkedProcess()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public Boolean getFailIfNoSpecifiedTests()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getForkedProcessTimeoutInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public double getParallelTestsTimeoutForcedInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public double getParallelTestsTimeoutInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getReportFormat()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getReportsDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getShutdown()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getSkipAfterFailureCount()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getTest()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getTestClassesDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isPrintSummary()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkip()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkipExec()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkipTests()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseFile()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseManifestOnlyJar()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseSystemClassLoader()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setBasedir( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setClassesDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setDebugForkedProcess( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setFailIfNoSpecifiedTests( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setForkedProcessTimeoutInSeconds( int arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setParallelTestsTimeoutForcedInSeconds( double arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setParallelTestsTimeoutInSeconds( double arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setPrintSummary( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setReportFormat( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setReportsDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkip( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkipExec( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkipTests( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setTest( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setTestClassesDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseFile( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseManifestOnlyJar( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseSystemClassLoader( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getDefaultIncludes()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getExcludesFile()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getIncludes()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getIncludesFile()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getPluginName()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getRerunFailingTestsCount()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRunOrder()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File[] getSuiteXmlFiles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleSummary( RunResult arg0, Exception arg1 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSuiteXmlFiles()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isSkipExecution()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIncludes( List<String> arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRunOrder( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSuiteXmlFiles( File[] arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<File> suiteXmlFiles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" );
|
||||
assert descriptorFile.isFile()
|
||||
|
||||
def pluginDescriptor = new XmlParser().parse( descriptorFile );
|
||||
|
||||
assert pluginDescriptor.mojos.mojo.size() == 1
|
||||
assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 50
|
||||
|
||||
return true;
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# 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.
|
||||
|
||||
invoker.goals.1 = clean process-classes
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
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/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.apache.maven.plugins.plugin.its</groupId>
|
||||
<artifactId>mplugin305</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>maven-plugin</packaging>
|
||||
|
||||
<url>https://issues.apache.org/jira/browse/MPLUGIN-305</url>
|
||||
|
||||
<properties>
|
||||
<mavenPluginPluginVersion>@project.version@</mavenPluginPluginVersion>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>2.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.plugin-tools</groupId>
|
||||
<artifactId>maven-plugin-annotations</artifactId>
|
||||
<version>${mavenPluginPluginVersion}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.surefire</groupId>
|
||||
<artifactId>maven-surefire-common</artifactId>
|
||||
<version>2.19.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-plugin-plugin</artifactId>
|
||||
<version>${mavenPluginPluginVersion}</version>
|
||||
<configuration>
|
||||
<extractors>
|
||||
<extractor>java-annotations</extractor>
|
||||
</extractors>
|
||||
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>mojo-descriptor</id>
|
||||
<goals>
|
||||
<goal>descriptor</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<mojoDependencies/>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,289 @@
|
|||
package org.apache.maven.plugins.plugin.it;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
|
||||
import org.apache.maven.plugins.annotations.Mojo;
|
||||
import org.apache.maven.surefire.suite.RunResult;
|
||||
|
||||
@Mojo(name="custom-surefire")
|
||||
public class CustomSurefireMojo extends AbstractSurefireMojo {
|
||||
|
||||
public File getBasedir()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getClassesDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getDebugForkedProcess()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public Boolean getFailIfNoSpecifiedTests()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getForkedProcessTimeoutInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public double getParallelTestsTimeoutForcedInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public double getParallelTestsTimeoutInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getReportFormat()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getReportsDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getShutdown()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getSkipAfterFailureCount()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getTest()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getTestClassesDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isPrintSummary()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkip()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkipExec()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkipTests()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseFile()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseManifestOnlyJar()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseSystemClassLoader()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setBasedir( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setClassesDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setDebugForkedProcess( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setFailIfNoSpecifiedTests( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setForkedProcessTimeoutInSeconds( int arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setParallelTestsTimeoutForcedInSeconds( double arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setParallelTestsTimeoutInSeconds( double arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setPrintSummary( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setReportFormat( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setReportsDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkip( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkipExec( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkipTests( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setTest( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setTestClassesDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseFile( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseManifestOnlyJar( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseSystemClassLoader( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getDefaultIncludes()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getExcludesFile()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getIncludes()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getIncludesFile()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getPluginName()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getRerunFailingTestsCount()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRunOrder()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File[] getSuiteXmlFiles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleSummary( RunResult arg0, Exception arg1 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSuiteXmlFiles()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isSkipExecution()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIncludes( List<String> arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRunOrder( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSuiteXmlFiles( File[] arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<File> suiteXmlFiles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" );
|
||||
assert descriptorFile.isFile()
|
||||
|
||||
def pluginDescriptor = new XmlParser().parse( descriptorFile );
|
||||
|
||||
assert pluginDescriptor.mojos.mojo.size() == 1
|
||||
assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 0
|
||||
|
||||
return true;
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# 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.
|
||||
|
||||
invoker.goals.1 = clean process-classes
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
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/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.apache.maven.plugins.plugin.its</groupId>
|
||||
<artifactId>mplugin305</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<packaging>maven-plugin</packaging>
|
||||
|
||||
<url>https://issues.apache.org/jira/browse/MPLUGIN-305</url>
|
||||
|
||||
<properties>
|
||||
<mavenPluginPluginVersion>@project.version@</mavenPluginPluginVersion>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-plugin-api</artifactId>
|
||||
<version>2.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.plugin-tools</groupId>
|
||||
<artifactId>maven-plugin-annotations</artifactId>
|
||||
<version>${mavenPluginPluginVersion}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.surefire</groupId>
|
||||
<artifactId>maven-surefire-common</artifactId>
|
||||
<version>2.19.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-plugin-plugin</artifactId>
|
||||
<version>${mavenPluginPluginVersion}</version>
|
||||
<configuration>
|
||||
<extractors>
|
||||
<extractor>java-annotations</extractor>
|
||||
</extractors>
|
||||
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
|
||||
<mojoDependencies>
|
||||
<mojoDependency>org.apache.maven.surefire:maven-surefire-common</mojoDependency>
|
||||
</mojoDependencies>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>mojo-descriptor</id>
|
||||
<goals>
|
||||
<goal>descriptor</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
@ -0,0 +1,289 @@
|
|||
package org.apache.maven.plugins.plugin.it;
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
|
||||
import org.apache.maven.plugins.annotations.Mojo;
|
||||
import org.apache.maven.surefire.suite.RunResult;
|
||||
|
||||
@Mojo(name="custom-surefire")
|
||||
public class CustomSurefireMojo extends AbstractSurefireMojo {
|
||||
|
||||
public File getBasedir()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getClassesDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getDebugForkedProcess()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public Boolean getFailIfNoSpecifiedTests()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getForkedProcessTimeoutInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public double getParallelTestsTimeoutForcedInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public double getParallelTestsTimeoutInSeconds()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getReportFormat()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getReportsDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getShutdown()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getSkipAfterFailureCount()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public String getTest()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public File getTestClassesDirectory()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isPrintSummary()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkip()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkipExec()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSkipTests()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseFile()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseManifestOnlyJar()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isUseSystemClassLoader()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setBasedir( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setClassesDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setDebugForkedProcess( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setFailIfNoSpecifiedTests( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setForkedProcessTimeoutInSeconds( int arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setParallelTestsTimeoutForcedInSeconds( double arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setParallelTestsTimeoutInSeconds( double arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setPrintSummary( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setReportFormat( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setReportsDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkip( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkipExec( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setSkipTests( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setTest( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setTestClassesDirectory( File arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseFile( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseManifestOnlyJar( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
public void setUseSystemClassLoader( boolean arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getDefaultIncludes()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getExcludesFile()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getIncludes()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File getIncludesFile()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getPluginName()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getRerunFailingTestsCount()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRunOrder()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public File[] getSuiteXmlFiles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void handleSummary( RunResult arg0, Exception arg1 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean hasSuiteXmlFiles()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isSkipExecution()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIncludes( List<String> arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRunOrder( String arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSuiteXmlFiles( File[] arg0 )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<File> suiteXmlFiles()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
File descriptorFile = new File( basedir, "target/classes/META-INF/maven/plugin.xml" );
|
||||
assert descriptorFile.isFile()
|
||||
|
||||
def pluginDescriptor = new XmlParser().parse( descriptorFile );
|
||||
|
||||
assert pluginDescriptor.mojos.mojo.size() == 1
|
||||
assert pluginDescriptor.mojos.mojo.parameters.parameter.size() == 50
|
||||
|
||||
return true;
|
||||
|
|
@ -21,6 +21,8 @@ package org.apache.maven.plugin.plugin;
|
|||
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
|
||||
import org.apache.maven.artifact.resolver.filter.IncludesArtifactFilter;
|
||||
import org.apache.maven.plugin.AbstractMojo;
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
|
||||
|
|
@ -40,6 +42,7 @@ import org.codehaus.plexus.util.ReaderFactory;
|
|||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
|
|
@ -130,6 +133,16 @@ public abstract class AbstractGeneratorMojo
|
|||
@Parameter( defaultValue = "${project.artifacts}", required = true, readonly = true )
|
||||
protected Set<Artifact> dependencies;
|
||||
|
||||
/**
|
||||
* Specify the dependencies as {@code groupId:artifactId} containing (abstract) Mojos.
|
||||
* If none is specified, all dependencies are scanned.
|
||||
* If an empty list is specified, no dependencies are scanned.
|
||||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
@Parameter
|
||||
private List<String> mojoDependencies;
|
||||
|
||||
/**
|
||||
* List of Remote Repositories used by the resolver
|
||||
*
|
||||
|
|
@ -230,6 +243,31 @@ public abstract class AbstractGeneratorMojo
|
|||
getLog().info( "Using '" + encoding + "' encoding to read mojo source files." );
|
||||
}
|
||||
|
||||
Set<Artifact> requestDependencies;
|
||||
if ( mojoDependencies == null )
|
||||
{
|
||||
requestDependencies = dependencies;
|
||||
}
|
||||
else if ( mojoDependencies == null )
|
||||
{
|
||||
requestDependencies = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
requestDependencies = new LinkedHashSet<Artifact>();
|
||||
|
||||
ArtifactFilter filter = new IncludesArtifactFilter( mojoDependencies );
|
||||
|
||||
for ( Artifact artifact : dependencies )
|
||||
{
|
||||
if ( filter.include( artifact ) )
|
||||
{
|
||||
requestDependencies.add( artifact );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
List<ComponentDependency> deps = GeneratorUtils.toComponentDependencies( project.getRuntimeDependencies() );
|
||||
|
|
@ -238,7 +276,7 @@ public abstract class AbstractGeneratorMojo
|
|||
PluginToolsRequest request = new DefaultPluginToolsRequest( project, pluginDescriptor );
|
||||
request.setEncoding( encoding );
|
||||
request.setSkipErrorNoDescriptorsFound( skipErrorNoDescriptorsFound );
|
||||
request.setDependencies( dependencies );
|
||||
request.setDependencies( requestDependencies );
|
||||
request.setLocal( this.local );
|
||||
request.setRemoteRepos( this.remoteRepos );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue