diff options
Diffstat (limited to 'enforcer-rule/src/site/apt')
-rw-r--r-- | enforcer-rule/src/site/apt/examples/checking-version.apt.vm | 251 | ||||
-rw-r--r-- | enforcer-rule/src/site/apt/index.apt | 37 | ||||
-rw-r--r-- | enforcer-rule/src/site/apt/usage.apt.vm | 84 |
3 files changed, 372 insertions, 0 deletions
diff --git a/enforcer-rule/src/site/apt/examples/checking-version.apt.vm b/enforcer-rule/src/site/apt/examples/checking-version.apt.vm new file mode 100644 index 0000000..f86c745 --- /dev/null +++ b/enforcer-rule/src/site/apt/examples/checking-version.apt.vm @@ -0,0 +1,251 @@ +#* + * This software is licensed under the Apache 2 license, quoted below. + * + * Copyright 2010 Julien Eluard + * + * Licensed 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. + *# + +Checking a project's version against older releases + +* Basic example + + In order to check your project's version against an older release, you must add the enforcer rule as a dependency to + the maven-enforcer-plugin and then configure your the maven-enforcer-plugin to run the rule: + +--- +<project> + ... + <build> + ... + <plugins> + ... + <plugin> + <artifactId>maven-enforcer-plugin</artifactId> + <version>1.0-beta-1</version> + ... + <dependencies> + ... + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + </dependency> + ... + </dependencies> + ... + <executions> + .... + <execution> + <id>check-version</id> + <phase>verify</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <checkVersionRule implementation="org.semver.enforcer.CheckVersionRule"> + ... + <previousVersion>1.0.0</previousVersion> + ... + </checkVersionRule> + </rules> + </configuration> + </execution> + ... + </executions> + ... + </plugin> + ... + </plugins> + ... + </build> + ... +</project> +--- + + Once you have configured your project with details of the previous version to check, maven-enforcer will be able to + throw a build error if current version is not backward compatible with previous one. + +* Including classes + + By default all classes will be considered during checking process. You might want to only check a subset of classes/packages. This is achieved by specifying <<<includes>>>. + +--- +<project> + ... + <build> + ... + <plugins> + ... + <plugin> + <artifactId>maven-enforcer-plugin</artifactId> + <version>1.0-beta-1</version> + ... + <dependencies> + ... + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + </dependency> + ... + </dependencies> + ... + <executions> + .... + <execution> + <id>check-version</id> + <phase>verify</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <checkVersionRule implementation="org.semver.enforcer.CheckVersionRule"> + ... + <previousVersion>1.0.0</previousVersion> + <includes> + <include>org.project.MyClass</include> + </includes> + ... + </checkVersionRule> + </rules> + </configuration> + </execution> + ... + </executions> + ... + </plugin> + ... + </plugins> + ... + </build> + ... +</project> +--- + + We can specify multiple <includes> classes or packages. For example, to include <<<org.project.MyClass>>> class and <<<org.project.internal>>> package you would use a configuration like: + +--- +<project> + ... + <build> + ... + <plugins> + ... + <plugin> + <artifactId>maven-enforcer-plugin</artifactId> + <version>1.0-beta-1</version> + ... + <dependencies> + ... + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + </dependency> + ... + </dependencies> + ... + <executions> + .... + <execution> + <id>check-version</id> + <phase>verify</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <checkVersionRule implementation="org.semver.enforcer.CheckVersionRule"> + ... + <previousVersion>1.0.0</previousVersion> + <includes> + <include>org.project.MyClass</include> + <include>org.project.internal</include> + </includes> + ... + </checkVersionRule> + </rules> + </configuration> + </execution> + ... + </executions> + ... + </plugin> + ... + </plugins> + ... + </build> + ... +</project> +--- + +* Excluding classes + + You may also want to exclude some classes/packages. For instance internal code might evolve independently from published API. This is achieved by specifying <<<excludes>>>. + +--- +<project> + ... + <build> + ... + <plugins> + ... + <plugin> + <artifactId>maven-enforcer-plugin</artifactId> + <version>1.0-beta-1</version> + ... + <dependencies> + ... + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + </dependency> + ... + </dependencies> + ... + <executions> + .... + <execution> + <id>check-version</id> + <phase>verify</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <checkVersionRule implementation="org.semver.enforcer.CheckVersionRule"> + ... + <previousVersion>1.0.0</previousVersion> + <excludes> + <exclude>org.project.MyClass</exclude> + </excludes> + ... + </checkVersionRule> + </rules> + </configuration> + </execution> + ... + </executions> + ... + </plugin> + ... + </plugins> + ... + </build> + ... +</project> +---
\ No newline at end of file diff --git a/enforcer-rule/src/site/apt/index.apt b/enforcer-rule/src/site/apt/index.apt new file mode 100644 index 0000000..ff30f76 --- /dev/null +++ b/enforcer-rule/src/site/apt/index.apt @@ -0,0 +1,37 @@ +~~ +~~ This software is licensed under the Apache 2 license, quoted below. +~~ +~~ Copyright 2010 Julien Eluard +~~ +~~ Licensed 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. +~~ + +Semantic Versioning Enforcer Rule + + The Semantic Versioning Enforcer Rule is used to check your classes against previously released classes. + Depending on changes your version number will be valid or not according to {{{http://semver.org}semantic versioning}} rules. + +* Rules Overview + + The Semantic Versioning Enforcer Rule has the following rule. + + * <<<checkRule>>> checks a project version number against an older release. + +* Examples + + To provide you with better understanding of some usages of Semantic Versioning Enforcer Rule, + you can take a look into the following example: + + * {{{examples/checking-version.html}Checking a project's version against an older release}} + + []
\ No newline at end of file diff --git a/enforcer-rule/src/site/apt/usage.apt.vm b/enforcer-rule/src/site/apt/usage.apt.vm new file mode 100644 index 0000000..b1491a9 --- /dev/null +++ b/enforcer-rule/src/site/apt/usage.apt.vm @@ -0,0 +1,84 @@ +#* + * This software is licensed under the Apache 2 license, quoted below. + * + * Copyright 2010 Julien Eluard + * + * Licensed 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. + *# + +Usage + + The enforcer rule offers a rule for checking project's version against a previously released artifact. + +* Basic Usage + +** Checking a project's version + + In order to check your project's version, you must add the enforcer rule as a dependency to + the maven-enforcer-plugin and then configure the maven-enforcer-plugin to run the rule: + +--- +<project> + ... + <build> + ... + <plugins> + ... + <plugin> + <artifactId>maven-enforcer-plugin</artifactId> + <version>1.0-beta-1</version> + ... + <dependencies> + ... + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <version>${project.version}</version> + </dependency> + ... + </dependencies> + ... + <executions> + .... + <execution> + <id>check</id> + <phase>verify</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <checkVersionRule implementation="org.semver.enforcer.CheckVersionnRule"> + ... + <previousVersion>1.0.0</previousVersion> + ... + </checkVersionrule> + </rules> + </configuration> + </execution> + ... + </executions> + ... + </plugin> + ... + </plugins> + ... + </build> + ... +</project> +--- + + Once you have configured your project with details of the previous version to check, maven-enforcer will be able to + throw a build error if current version is not backward compatible with previous one. + + Some more detailed {{{examples/checking-version.html}examples}} of the <<<checkVersionRule>>> rule.
\ No newline at end of file |