This is an automated email from the ASF dual-hosted git repository. hboutemy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-resolver-ant-tasks.git
The following commit(s) were added to refs/heads/master by this push: new 721b5a4 added README 721b5a4 is described below commit 721b5a4695dd2d56119af0ad2b2e825862cad4cd Author: Hervé Boutemy <hbout...@apache.org> AuthorDate: Mon Apr 13 20:48:14 2020 +0200 added README --- .asf.yaml | 10 ++ README.md | 342 ++++++++++++++++++-------------------------------------------- 2 files changed, 109 insertions(+), 243 deletions(-) diff --git a/.asf.yaml b/.asf.yaml new file mode 100644 index 0000000..14f3083 --- /dev/null +++ b/.asf.yaml @@ -0,0 +1,10 @@ +# see https://s.apache.org/asfyaml +github: + description: "Apache Maven Artifact Resolver Ant Tasks" + homepage: https://maven.apache.org/resolver-ant-tasks/ + labels: + - java + - build-management + - apache-maven + - maven + - apache-ant diff --git a/README.md b/README.md index 40787d5..cadc9b8 100644 --- a/README.md +++ b/README.md @@ -1,243 +1,99 @@ -# Maven Artifact Resolver Ant Tasks - -The Maven Artifact Resolver Ant Tasks enable build scripts for [Apache Ant](http://ant.apache.org/) 1.7+ to use -[Maven Artifact Resolver](https://maven.apache.org/resolver/) combined to -[Apache Maven Artifact Resolver Provider](https://maven.apache.org/ref/current/maven-resolver-provider/) -to resolve dependencies and install and deploy locally built artifacts. - -To integrate the tasks into your build file, copy the JAR into your project's lib directory and use the following -snippet to load it: - - <project xmlns:resolver="antlib:org.apache.maven.resolver.ant" ...> - <taskdef uri="antlib:org.apache.maven.resolver.ant" resource="org/apache/maven/resolver/ant/antlib.xml"> - <classpath> - <fileset dir="lib" includes="maven-resolver-ant-tasks-*.jar"/> - </classpath> - </taskdef> - ... - </project> - -See the `build.xml` in the project sources for a complete example build script. - -## Settings - -The Ant tasks are tightly integrated with the usual [Apache Maven settings.xml](/settings.html). -By default, the usual `${user.home}/.m2/settings.xml` is used for user settings. - -For the global settings, different paths will be tried: - -* `${ant.home}/etc/settings.xml` -* `${maven.home}/conf/settings.xml` -* `$M2_HOME/conf/settings.xml` - -The `<settings/>` definition is used to change that: - - <settings file="my-settings.xml" globalfile="myglobal-settings.xml"/> - -Some settings defined in the settings file or in the POM can also be changed inside the Ant file. - -### Proxy Settings - -Proxy definitions are used throughout the whole session. There may be multiple -proxies set. The proxy to use will be chosen by evaluating the `nonProxyHosts` on -each proxy definition, the first matching proxy will be used for a given remote connection. - - <proxy host="proxy.mycorp.com" port="8080" type="http" nonProxyHosts="127.*|localhost|*.mycorp.com"/> - -### Authentication - -Authentication elements are used to access remote repositories. Every -authentication definition will be added globally and chosen based on the -`servers` attribute. If this attribute is not set, an authentication has to be -referenced explicitly to be used. - - <authentication username="login" password="pw" id="auth"/> - <authentication privateKeyFile="file.pk" passphrase="phrase" servers="distrepo" id="distauth"/> - -### Local Repository - -Only one local repository can be used at a time. - - <localrepo dir="someDir"/> - -### Remote Repositories - -Remote repositories may be defined directly: - - <remoterepo id="ossrh" url="https://oss.sonatype.org/content/repositories/snapshots/" type="default" releases="false" snapshots="true" updates="always" checksums="fail"/> - - <remoterepo id="rao" url="https://repository.apache.org/content/groups/public/"> - <releases enabled="true" updates="daily" checksums="warn"/> - <snapshots enabled="false"/> - <authentication refid="auth"/> - </remoterepo> - - <remoterepo id="distrepo" url="..." authref="distauth"/> - -Multiple repositories may be used as a group in every place that is legal for a -remote repository: - - <remoterepos id="all"> - <remoterepo refid="ossrh"/> - <remoterepo refid="rao"/> - <remoterepo refid="distrepo"/> - </remoterepos> - -*Note:* Currently, only file:, http: and https: protocols are supported for remote repositories. - -### Mirrors - - <mirror id="" url="" mirrorOf=""/> - -### Offline Mode - -To suppress any network activity and only use already cached artifacts/metadata, you can use a boolean property: - - <property name="resolver.offline" value="true"/> - - -## Project - -Project settings deal with locally available information about the build. - -### POM - -The POM is the data type used to determine the target for the install and -deploy tasks. If you define a POM without an id based on a full `pom.xml` file, -that POM will be used by default for install and deploy. - - <pom file="pom.xml" id="pom"/> - <pom groupId="g" artifactId="a" version="v"/> - <pom coords="g:a:v"/> - -#### Properties - -If a POM is set via a file parameter its effective model is made available as properties to the Ant project. -The properties are prefixed with the ref id of the `<pom>` element, e.g. `${pom.version}` for the example above. -Likewise, project properties defined in the POM are accessible via the prefix `pom.properties.`. If no id has been -assigned, the properties use the prefix `pom.` by default. - -### Output Artifacts - -`<artifact>` elements define the artifacts produced by this build that should be installed or deployed. - - <artifact file="file-src.jar" type="jar" classifier="sources" id="src"/> - - <artifacts id="producedArtifacts"> - <artifact refid="src"/> - <artifact file="file-src.jar"/> - </artifacts> - -### Dependencies - -Dependencies are used to to create classpaths or filesets. They are used by -the `<resolve>`-task, which collects the artifacts belonging to the dependencies -transitively. - - <dependency coords="g:a:v:scope"/> - - <dependency groupId="g" artifactId="a" version="v" classifier="c" type="jar" scope="runtime"> - <exclusion coords="g:a"/> - <exclusion groupId="g" artifactId="a"/> - </dependency> - - <dependencies id="deps"> - <dependency refid="first"/> - <dependency refid="second"/> - <exclusion coords="g:a"/> <!-- global exclusion for all dependencies of this group --> - </dependencies> - - <dependencies> - <dependency coords="test:artifact:1.0:runtime"/> - <dependencies refid="deps"/> <!-- nested dependency collection merged into this one --> - </dependencies> - - <dependencies id="depsFromPom" pomRef="pom"/> - - <dependencies id="depsFromPlainTextFile" file="dependencies.txt"/> - <!-- - Each non-empty line of that text file declares one dependency, using the same syntax as for the `coords` attribute - of the `<dependency>` element, i.e. - <groupId>:<artifactId>:<version>[[:<type>[:<classifier>]]:<scope>] - Everything after the first hash (#) character on a line is considered a comment. - --> - - -## Tasks - -### Install - -You need to set a POM that references a file for the install task to work. - - <install artifactsref="producedArtifacts"/> - -### Deploy - -You need to set a POM that references a file for the deploy task to work, as that POM file will be deployed to repository. - - <deploy artifactsref="producedArtifacts"> - <remoterepo refid="distrepo"/> - <snapshotrepo refid="snaprepo"> - </deploy> - -### Resolve - -The `<resolve>`-task is used to collect and resolve dependencies from remote -servers. If no repositories are set explicitly for the task, the repositories -referenced by "resolver.repositories" are used. This contains only central by -default, but can be overridden by supplying another repository definition with -this id. - - -This task is able to assemble the collected dependencies in three different ways: - -* Classpath: The `<path>` element defines a classpath with all resolved dependencies. -* Files: `<files>` will assemble a resource collection containing all resolved dependencies and/or copy the files to some directory. -* Properties: `<properties>` will set properties with the given prefix and the coordinates to the path to the resolved file. - -These targets may also be mentioned more than once for the same resolve task, -but only one `<dependencies>` element is allowed. - - <resolve failOnMissingAttachments="true"> - <dependencies> - <dependency coords="org.apache.maven:maven-profile:2.0.6"/> - <exclusion artifactId="junit"/> - <exclusion groupId="org.codehaus.plexus"/> - </dependencies> - <path refid="cp" classpath="compile"/> - <files refid="src.files" attachments="sources" dir="target/sources" - layout="{artifactId}-{classifier}.{extension}"/> - <files refid="api.files" attachments="javadoc" dir="target/javadoc" - layout="{artifactId}-{classifier}.{extension}"/> - <properties prefix="dep." scopes="provided,system"/> - </resolve> - - <resolve dependenciesref="deps"> - <path refid="cp.compile" classpath="compile"/> - <path refid="cp.test" classpath="test"/> - </resolve> - -Scope filters can be set on every target, enumerating included and/or excluded -scope names. Exclusions are denoted by prefixing the scope name with `-` or `!` (e.g. `provided,!system`). - -The `classpath` attribute is a shortcut for the scope filters (e.g. -`classpath="compile"` equals `scope="provided,system,compile"`). Valid values are -"`compile`", "`runtime`", "`test`". - - <resolve> - <dependencies pomRef="pom"/> - <remoterepos refid="all"/> - <path refid="cp" classpath="compile"/> - <path refid="tp" classpath="test"/> - </resolve> - -The layout attribute of the `<files>` element is only allowed when the `dir` attribute is also given and recognizes the -following placeholders to refer to the coordinates of the currently processed artifact: - -* `{groupId}`, e.g. "org.apache.maven.resolver" -* `{groupIdDirs}`, e.g. "org/apache/maven/resolver" -* `{artifactId}`, e.g. "maven-resolver-api" -* `{version}`, e.g. "1.0.0-20140518.181353-123" -* `{baseVersion}`, e.g. "1.0.0-SNAPSHOT" -* `{extension}`, e.g. "jar" -* `{classifier}`, e.g. "sources" +<!--- + 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. +--> +Contributing to [Apache Maven Artifact Resolver Ant Tasks](https://maven.apache.org/resolver/) +====================== + +[][jira] +[][license] +[](https://search.maven.org/artifact/org.apache.maven.resolver/maven-resolver-ant-tasks) +[][build] +[][test-results] + + +You have found a bug or you have an idea for a cool new feature? Contributing +code is a great way to give something back to the open source community. Before +you dig right into the code, there are a few guidelines that we need +contributors to follow so that we can have a chance of keeping on top of +things. + +Getting Started +--------------- + ++ Make sure you have a [JIRA account](https://issues.apache.org/jira/). ++ Make sure you have a [GitHub account](https://github.com/signup/free). ++ If you're planning to implement a new feature, it makes sense to discuss your changes + on the [dev list][ml-list] first. + This way you can make sure you're not wasting your time on something that isn't + considered to be in Apache Maven's scope. ++ Submit a ticket for your issue, assuming one does not already exist. + + Clearly describe the issue, including steps to reproduce when it is a bug. + + Make sure you fill in the earliest version that you know has the issue. ++ Fork the repository on GitHub. + +Making and Submitting Changes +-------------- + +We accept Pull Requests via GitHub. The [developer mailing list][ml-list] is the +main channel of communication for contributors. +There are some guidelines which will make applying PRs easier for us: ++ Create a topic branch from where you want to base your work (this is usually the master branch). + Push your changes to a topic branch in your fork of the repository. ++ Make commits of logical units. ++ Respect the original code style: by using the same [codestyle][code-style], + patches should only highlight the actual difference, not being disturbed by any formatting issues: + + Only use spaces for indentation. + + Create minimal diffs - disable on save actions like reformat source code or organize imports. + If you feel the source code should be reformatted, create a separate PR for this change. + + Check for unnecessary whitespace with `git diff --check` before committing. ++ Make sure your commit messages are in the proper format. Your commit message should contain the key of the JIRA issue. +``` +[MRESOLVER-XXX] - Subject of the JIRA Ticket + Optional supplemental description. +``` ++ Make sure you have added the necessary tests (JUnit/IT) for your changes. ++ Run all the tests with `mvn -Prun-its verify` to assure nothing else was accidentally broken. ++ Submit a pull request to the repository in the Apache organization. ++ Update your JIRA ticket and include a link to the pull request in the ticket. + +If you plan to contribute on a regular basis, please consider filing a [contributor license agreement][cla]. + +Making Trivial Changes +---------------------- + +For changes of a trivial nature to comments and documentation, it is not always +necessary to create a new ticket in JIRA. In this case, it is appropriate to +start the first line of a commit with '(doc)' instead of a ticket number. + +Additional Resources +-------------------- + ++ [Contributing patches](https://maven.apache.org/guides/development/guide-maven-development.html#Creating_and_submitting_a_patch) ++ [Apache Maven Artifact Resolver Ant Tasks project page][jira] ++ [Contributor License Agreement][cla] ++ [General GitHub documentation](https://help.github.com/) ++ [GitHub pull request documentation](https://help.github.com/send-pull-requests/) ++ [Apache Maven Twitter Account](https://twitter.com/ASFMavenProject) ++ #Maven IRC channel on freenode.org + +[jira]: https://issues.apache.org/jira/projects/MRESOLVER/ +[license]: https://www.apache.org/licenses/LICENSE-2.0 +[ml-list]: https://maven.apache.org/mailing-lists.html +[code-style]: https://maven.apache.org/developers/conventions/code.html +[cla]: https://www.apache.org/licenses/#clas +[maven-wiki]: https://cwiki.apache.org/confluence/display/MAVEN/Index +[test-results]: https://builds.apache.org/job/maven-box/job/maven-resolver-ant-tasks/job/master/lastCompletedBuild/testReport/ +[build]: https://builds.apache.org/job/maven-box/job/maven-resolver-ant-tasks/job/master/