aspectj-maven-plugin
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>com.nickwongdev</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.12.6</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.codehaus.mojo</groupId> <artifactId>mojo-parent</artifactId> <version>40</version> </parent> <groupId>com.nickwongdev</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.12.6</version> <packaging>maven-plugin</packaging> <name>Mojo's AspectJ Maven Plugin - NickWongDev Fork</name> <description> Handles AspectJ usage within Maven. Functionality provided is: weaving of aspects (or existing aspects from libraries) with the test and/or main classes, weaving of pre-existing jars and ajdoc reporting. </description> <inceptionYear>2018</inceptionYear> <properties> <aspectjVersion>1.9.5</aspectjVersion> <mavenVersion>3.0.5</mavenVersion> <doxiaVersion>1.8</doxiaVersion> <mojo.java.target>1.8</mojo.java.target> <!-- aspectJ > 1.8.13 is JDK 1.8 minimum --> <!-- work around until it is correctly fixed at top parent --> <scmpublish.content>${project.build.directory}/staging/aspectj-maven-plugin</scmpublish.content> </properties> <prerequisites> <maven>${mavenVersion}</maven> </prerequisites> <issueManagement> <system>GitHub</system> <url>https://github.com/nickwongdev/aspectj-maven-plugin/issues/</url> </issueManagement> <scm> <connection>scm:git:https://github.com/nickwongdev/aspectj-maven-plugin.git</connection> <developerConnection>scm:git:ssh://git@github.com/nickwongdev/aspectj-maven-plugin.git</developerConnection> <url>https://github.com/nickwongdev/aspectj-maven-plugin</url> <tag>aspectj-maven-plugin-1.12.6</tag> </scm> <distributionManagement> <snapshotRepository> <id>sonatype-snapshot</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>sonatype-release</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url> </repository> </distributionManagement> <developers> <developer> <id>kaare</id> <name>Kaare Nilsen</name> <email>kaare.nilsen@gmail.com</email> <organization>Arktekk</organization> <organizationUrl>http://arktekk.no</organizationUrl> <roles> <role>Java Developer</role> </roles> <timezone>+1</timezone> </developer> <developer> <name>Lennart Jörelid</name> <email>lj@jguru.se</email> <organization>jGuru Europe AB</organization> <roles> <role>Java Developer</role> </roles> <timezone>+1</timezone> </developer> </developers> <contributors> <contributor> <name>Thor Age Eldby</name> <email>tel@objectnet.no</email> <roles> <role>Java Developer</role> </roles> <timezone>+1</timezone> </contributor> <contributor> <name>David J. M. Karlsen</name> <email>david@davidkarlsen.com</email> <organization>davidkarlsen.com</organization> <organizationUrl>http://www.davidkarlsen.com</organizationUrl> <roles> <role>Java Developer</role> </roles> <timezone>+1</timezone> </contributor> <contributor> <name>Marvin Froeder</name> <email>velo.br@gmail.com</email> <timezone>-3</timezone> </contributor> <contributor> <name>Krzysztof Debski</name> <email>kdebski85@gmail.com</email> <timezone>+1</timezone> </contributor> <contributor> <name>Nicholas Wong</name> <email>nickwongdev@gmail.com</email> <timezone>America/LosAngeles</timezone> </contributor> </contributors> <dependencies> <!-- Maven core --> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-core</artifactId> <version>${mavenVersion}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-model</artifactId> <version>${mavenVersion}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.maven.reporting</groupId> <artifactId>maven-reporting-api</artifactId> <version>3.0</version> </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-plugin-api</artifactId> <version>${mavenVersion}</version> </dependency> <dependency> <groupId>org.apache.maven.plugin-tools</groupId> <artifactId>maven-plugin-annotations</artifactId> <scope>provided</scope><!-- annotations are needed only to build the plugin --> </dependency> <!-- Other --> <!-- see: https://cwiki.apache.org/confluence/display/MAVEN/Plugin+migration+to+Maven3+dependencies --> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-compat</artifactId> <version>${mavenVersion}</version> </dependency> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-sink-api</artifactId> <version>${doxiaVersion}</version> </dependency> <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-site-renderer</artifactId> <version>${doxiaVersion}</version> </dependency> <dependency> <groupId>org.apache.maven.reporting</groupId> <artifactId>maven-reporting-impl</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>${aspectjVersion}</version> </dependency> <!-- This is required to make the ajdoc tool work properly. When generating the AspectJ site documentation, the following debug statement is emitted onto the log: [DEBUG] Running : ajdoc -classpath [... a long classpath follows ...] ajdoc requires a JDK 1.4 or later tools jar - exiting --> <!-- Test --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.maven.plugin-testing</groupId> <artifactId>maven-plugin-testing-harness</artifactId> <version>2.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>3.5</version> <configuration> <!-- see: https://github.com/apache/maven-plugin-tools/pull/11 --> <mojoDependencies>com.nickwongdev:aspectj-maven-plugin</mojoDependencies> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.0.0-M1</version> <executions> <execution> <id>enforce-bytecode-version</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <enforceBytecodeVersion> <maxJdkVersion>${mojo.java.target}</maxJdkVersion> <excludes> <exclude>com.sun:tools</exclude> </excludes> </enforceBytecodeVersion> </rules> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>extra-enforcer-rules</artifactId> <version>1.0-beta-7</version> </dependency> </dependencies> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>false</skip> <excludes> <exclude>**/test-project/**/*.java</exclude> <exclude>**/parent-child-test-project/**/*.java</exclude> <exclude>**/AbstractAjcMojoTest.java</exclude> </excludes> </configuration> </plugin> <!-- Provides PlantUML integration into site deployments. --> <plugin> <groupId>com.github.jeluard</groupId> <artifactId>plantuml-maven-plugin</artifactId> <version>7954</version> <configuration> <sourceFiles> <directory>${basedir}</directory> <includes> <include>src/site/**/*.puml</include> </includes> </sourceFiles> <outputDirectory>${project.build.directory}/site/images/plantuml</outputDirectory> </configuration> <executions> <execution> <id>generate-plantuml-diagrams</id> <goals> <goal>generate</goal> </goals> <phase>pre-site</phase> </execution> </executions> <dependencies> <dependency> <groupId>net.sourceforge.plantuml</groupId> <artifactId>plantuml</artifactId> <version>7985</version> </dependency> </dependencies> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-plugin-plugin</artifactId> <version>3.5</version> <configuration> <!-- see: https://github.com/apache/maven-plugin-tools/pull/11 --> <mojoDependencies>com.nickwongdev:aspectj-maven-plugin</mojoDependencies> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>l10n-maven-plugin</artifactId> <version>1.0-alpha-2</version> <configuration> <locales> <locale>nl</locale> <locale>sv</locale> </locales> </configuration> </plugin> </plugins> </reporting> <profiles> <!-- AspectJ compilation requires that tools.jar (or its equivalent for some JDKs) is found on the classpath. The profiles named [something]toolsJar-profile define the systemPath for the tools.jar dependency by overriding the dummy systemPath from the dependencyManagement section. CAVEAT: Setting the systemPath it via a profile-dependent property like in earlier plugin versions does *not* work when the compiled plugin is used from Eclipse because properties are incorrectly merged by Eclipse, leading to problems ever since the 'java8' profile was introduced here because it also defines a property. --> <profile> <id>tools-jar</id> <activation> <jdk>1.8</jdk> <!-- activate only on JDK8, as 8 is minimum version to run aspectj on--> </activation> <dependencies> <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.8</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath> </dependency> </dependencies> </profile> <profile> <id>java8</id> <activation> <jdk>[1.8,)</jdk> </activation> <properties> <!-- Because of this properties section the old way of setting the tools.jar path via a property defined in another profile does not work anymore when importing Maven projects into Eclipse. :-( --> <additionalparam>-Xdoclint:none</additionalparam> </properties> </profile> <profile> <id>maven-repo-local</id> <activation> <property> <name>maven.repo.local</name> </property> </activation> <build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemProperties> <property> <!-- Pass this through to the tests (if set!) to have them pick the right repository --> <name>maven.repo.local</name> <value>${maven.repo.local}</value> </property> </systemProperties> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>integration-test</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-invoker-plugin</artifactId> <executions> <execution> <id>integration-test</id> <phase>verify</phase> <goals> <goal>verify</goal> <goal>run</goal> </goals> </execution> </executions> <configuration> <projectsDirectory>src/it</projectsDirectory> <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo> <postBuildHookScript>verify</postBuildHookScript> <localRepositoryPath>${project.build.directory}/local-repo </localRepositoryPath> <goals> <goal>clean</goal> <goal>test</goal> </goals> <settingsFile>src/it/settings.xml</settingsFile> <debug>true</debug> </configuration> </plugin> </plugins> </build> </profile> <!-- GPG Signature on release --> <profile> <id>release-sign-artifacts</id> <activation> <property> <name>performRelease</name> <value>true</value> </property> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.6</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> </project>