Commit Graph

67 Commits

Author SHA1 Message Date
Mark Harrah 57306e6257 Better representation of no cross-version suffix in suffix conflict error message. 2013-10-23 09:46:43 -04:00
Mark Harrah 0cd8849ec1 Work around various issues with Maven local repositories. Fixes #321.
* when mvn does a local 'install', it doesn't update the pom.xml last modified time if the pom.xml content hasn't changed
* an ivy.xml includes publicationDate, so an ivy.xml will always be touched even if the other content hasn't changed
* when Ivy checks if a snapshot is uptodate
  + it sees a SNAPSHOT, so it knows the module metadata and artifacts might change
  + it then checks the lastModified time of the metadata
  + if unchanged, it uses the cached information
  + if useOrigin is effectively false (either it is explicitly false or a resource is remote/isLocal=false),
    this means that a new artifact won't be retrieved
* the Ivy IBiblioResolver
  + must be used for Maven repositories for proper behavior (no FileResolver, for example)
  + only returns URLResources, even for file: URLs
  + a FileResource is needed in combination with useOrigin to avoid copying artifacts from .m2/repository/

This commit fixes the above by setting a custom URLRepository on a constructed IBiblioResolver.
This URLRepository returns FileResources for file: URLs and standard URLResources for others.
The returned FileResource has isLocal=true and sbt sets useOrigin=true by default, so the artifacts
are used from the origin.

If it turns out a similar situation happens when mvn publishes to remote repositories, it is likely the fix for
that would be to figure out how to disable the lastModified check on the metadata and always download the metadata.
This would be slower, however.
2013-10-10 21:36:11 -04:00
Mark Harrah 77ed899a96 'makePom' should not generate <type> elements for standard classifiers. Fixes #728.
The <type> element was generated for any explicit Artifact with a type other than "jar".
withSources() and withJavadoc() create explicit Artifacts of this kind, but shouldn't
have <type> elements.  They are primarily artifacts with classifiers- the type is an
Ivy aspect.  So, when writing to a pom, don't use write a type for known classifiers.
2013-10-02 19:39:17 -04:00
James Roper 743ce99315 String upper/lower case no longer locale dependent
Fixed many instances of the Turkish i bug.

Spare a thought for the poor Turks!
2013-09-24 08:14:15 -04:00
Mark Harrah 8ff424711c parse external pom.xml with CustomPomParser to handle multiple definitions.
Fixes #758.  This is the same issue fixed by 74c07c64a7
but in this case the cause was the top-level pom.xml, which didn't go through CustomPomParser.
2013-09-16 11:58:13 -04:00
Mark Harrah 6a293c4efe don't transform a module descriptor after it has already been processed by this sbt version. Ref #876. 2013-09-13 23:19:06 -04:00
Mark Harrah 31f6f9905d do custom pom processing when reading from cache, fixes #876 2013-09-13 23:18:13 -04:00
Mark Harrah d279f2ed76 Move some logic in custom pom parser to separate methods 2013-09-13 16:37:22 -04:00
William Benton c6cee694ab Add factory methods to PatternsBasedRepository
This commit adds convenience methods to PatternsBasedRepository that
produce a copy of the repository with metadata optional or with
consistency checking disabled.
2013-08-26 14:06:21 -04:00
William Benton 2a3462ac12 Additional options for Ivy resolvers.
Specify an Ivy resolver with ", descriptorOptional" to make Ivy
descriptor files optional for that repository or with
", skipConsistencyCheck" to disable Ivy consistency checks for
that repository.
2013-08-26 14:06:21 -04:00
Mark Harrah d847d4ea2f API docs for CrossVersion 2013-08-16 14:21:44 -04:00
Mark Harrah 89d15ed1f9 Use repo.scala-sbt.org everywhere to be more independent of hosting details. 2013-08-07 18:24:19 -04:00
Mark Harrah d8b3118ba4 Revert packaging='pom' behavior change introduced in c5823ad1e7. Fixes #810. Ref #636. 2013-07-11 18:49:30 -04:00
Mark Harrah 544565bf98 clean up some ConvertResolver parameter lists 2013-07-11 18:49:30 -04:00
Mark Harrah ce1c8b0ebc Better auto project ID handling. Ref #776.
* Consolidate project ID validation and normalization into Project methods
* Provide an earlier and more detailed error message when the directory
  name can't be used for the project ID
2013-06-23 19:57:30 -04:00
Mark Harrah 7796715e88 Move deprecated scala-tools conveniences to private[sbt] accessibility 2013-06-19 17:15:22 -04:00
Mark Harrah 133ff84ae8 Invalidate cache when metadata came from ProjectResolver. Based on the core idea in #770 by @ezh.
Fixes #768, closes #770, fixes #773.
2013-06-05 19:55:24 -04:00
Mark Harrah 268ae565f6 Fix regression in 0.12.3 where artifacts without an explicit configuration wouldn't be listed in ivy.xml. 2013-06-04 11:10:12 -04:00
Mark Harrah cbe6c96564 ProjectResolver should throw an exception when called to retrieve dependency.
As suggested by @ezh, ref #770.
2013-06-03 22:49:48 -04:00
Mark Harrah 8823df4fbc additional docs on ModuleID.extra 2013-06-01 10:56:30 -04:00
Mark Harrah ea52e2c034 Test case and comment fixes #760.
The actual fix was introduced in 6d5d641dd7.
2013-05-28 15:08:13 -04:00
Mark Harrah 04a5a01005 Use publication date from metadata instead of original file's last modified time. Fixes #764. 2013-05-28 11:08:49 -04:00
Mark Harrah 6d5d641dd7 Fix for cache issues when developing sbt itself.
Ivy still seems to remember the resolver that found the metadata
and records that as the resolver to use for the artifact.  Previous
fixes have attempted to ignore or blank this resolver.  The issue
this fix addresses comes from inter-project not being ignored/blanked.
inter-project can't provide artifacts because it is only for projects
in the current build under development and not for modules in a repository.
The symptom is that compiling a build definition fails because the
sbt jars aren't on the classpath, but it is ultimately due to the
inter-project resolver incorrectly being used to resolve artifacts.
2013-05-05 15:42:15 -04:00
Mark Harrah b5dc5c1ddd account for localOnly when cache subclass overrides isChanging 2013-05-05 15:42:15 -04:00
Mark Harrah a4c059cb7e Better auto-generated IDs for default projects. Fixes #554.
For the global plugins project, the default ID is "global-plugins".
For a normal project, the default ID is the name of the build directory.
The ID of a build definition for one of the above appends -build.
2013-04-10 20:15:28 -04:00
Mark Harrah dce2853ae7 Correct data constructor for CrossVersion.binaryMapping. Fixes #716. 2013-03-27 09:17:54 -04:00
Mark Harrah 2f13b7a8c7 add publish-m2 task for publishing to ~/.m2/repository. Fixes #485. 2013-03-27 09:17:53 -04:00
Mark Harrah e69df1ae9c use separate ivy home directories in component provider test so tests can run concurrently 2013-03-18 09:52:57 -04:00
Mark Harrah fcfa51c2ab Remove the conflict warnings based on the evicted modules. Ref #709.
This aspect is better served by a standard Ivy conflict manager.
2013-03-14 16:17:12 -04:00
Mark Harrah 718fa91772 Publish test artifacts in Test configuration and corrects classifier to 'tests'. Fixes #683 2013-03-08 20:11:53 -05:00
Mark Harrah 56b85522b7 ivy cache: ignore the original resolver in more places. Fixes #704 2013-03-08 14:23:31 -05:00
Brendan W. McAdams 77310ac2b6 Resolves #645: Added 'xml:space="preserve"' attribute to extraDependencyAttributes XML Block * This will keep PrettyPrinter from clobbering and breaking pom files for plugins dependent on other plugins 2013-02-28 18:00:40 -05:00
Mark Harrah f6d73128fc deprecations 2013-02-25 09:24:04 -05:00
Mark Harrah cbaef8a6f8 Use Ivy's default name for the resolution report.
Ivy hardcodes the resolution report name in the stylesheet that renders the
HTML from the XML report.  This means that the links to other configurations
are broken when using a custom name.
2013-02-19 14:33:22 -05:00
Eugene Yokota 125727ba83 support binary version in launcher 2013-01-29 16:55:13 -05:00
Eugene Yokota d7779ec96e add more CrossVersionTest 2013-01-24 13:03:40 -05:00
Eugene Yokota fedd43922a add CrossVersionTest 2013-01-24 13:03:40 -05:00
Eugene Yokota 6c24d1a8b8 deprecate binaryVersion 2013-01-24 13:03:40 -05:00
Eugene Yokota b929d778e9 adds sbtApiVersion and scalaApiVersion
sbtApiVersion and scalaApiVersion each calculates the API
version of release builds as well as milestones and RCs.

scalaBinaryVersion and sbtBinaryVersion are now aware of
scalaApiVersion and sbtApiVersion respectively.
For example, sbtBinaryVersion for "0.13.0-SNAPSHOT" now evaluates to
"0.13.0-SNAPSHOT" instead of "0.13".
2013-01-24 08:21:11 -05:00
Paolo G. Giarrusso d64a0e078d Silence boring Eclipse warnings: catching all exceptions, part 2
These warning fixes are new since my last pull request, please verify.
2013-01-22 09:05:15 -05:00
Paolo G. Giarrusso 40bc141058 Silence boring Eclipse warnings: @SuppressWarnings("rawtypes")
Add @SuppressWarnings("rawtypes") to ResolverAdapter, since it has a comment
making pretty clear that using raw types is intended.
2013-01-22 09:05:15 -05:00
Mark Harrah 960af4244a Only include standard scopes in pom.xml. 2013-01-16 10:26:33 -05:00
Mark Harrah 1cdaf530cb follow-up to invalidating changing artifacts: super.cacheModuleDescriptor can be null 2013-01-16 10:26:33 -05:00
Mark Harrah 37f937402f Ivy Artifact needs wildcard configuration added if no explicit ones are defined. Fixes #439. 2013-01-16 10:26:33 -05:00
Mark Harrah 0f28164b53 Invalidate artifacts not recorded in the original metadata when a module marked as changing changes. Fixes #637, #641. 2013-01-15 08:22:00 -05:00
Mark Harrah dd008e4dc5 Warn and optionally error when multiple cross version suffixes for a module are detected. Fixes #639. 2013-01-15 08:21:53 -05:00
Mark Harrah a9ac6b3983 Configurable conflict manager and corresponding documentation on conflictManager, dependencyOverrides, and force(). Fixes #603. 2013-01-11 16:01:31 -05:00
Mark Harrah c5823ad1e7 Don't try to automatically detect a main artifact when packaging=pom. Fixes #636.
For the rare case where a main artifact is expected, add an explicit jar()
to the dependency declaration.
2013-01-11 16:01:30 -05:00
Mark Harrah 4af9b70bf9 Split IvyInterface into Artifact, Configuration, ModuleID, and Resolver source files 2013-01-10 16:06:13 -05:00
Mark Harrah caa1a4c583 API documentation for ModuleID methods 2013-01-10 16:06:12 -05:00