chore(deps): update tycho-version to v4 (major) #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.26.0
->4.0.6
0.26.0
->4.0.6
Release Notes
eclipse-tycho/tycho (org.eclipse.tycho:tycho-source-plugin)
v4.0.4
Backports:
v4.0.3
new option to filter added repository-references when assembling a p2-repository
If filtering provided artifacts is enabled, the repository references automatically added to a assembled p2-repository
(via
tycho-p2-repository-plugin
'saddIUTargetRepositoryReferences
oraddPomRepositoryReferences
) can now be filtered by their locationusing exclusion and inclusion patterns and therefore allows more fine-grained control which references are added.
Additionally the automatically added references can be filter based on if they provide any of the filtered units or not.
If
addOnlyProviding
istrue
repositories that don't provide any filtered unit are not added to the assembled repo.v4.0.2
Repositories can contain references to other repositories (e.g. to find additional dependencies), from now on there is a new option,
referencedRepositoryMode
, to also consider these references. By default, it is set toignore
; to enable referenced repositories in target platform resolution, set it toinclude
:v4.0.1
backports:
v4.0.0
Maven 3.9 required
Tycho 4.x requires Maven Version 3.9.
creating maven p2 sites with Tycho packaging
There is already a way to create a p2 maven site with Tycho for plain jar based projects.
This support is now enhanced to being used in a Tycho based setup so it is possible to build a full maven deployed updatesite automatically with all bundles of the current build.
You can find a demo here:
https://github.com/eclipse-tycho/tycho/tree/master/demo/p2-maven-site
New document-bundle mojo
There is now a new mojo that replaces the usual ant-based workflow to generate the help index, it can be used like this:
New API-Tools Mojo
There is now a new mojo that replaces the usual ant-based workflow to call the PDE-API tools, it can be used like this:
Building Multi-Release-Jars
Tycho now supports building of Multi-Release-Jar in a Manifest-First-Way,
a demo can be found here https://github.com/eclipse-tycho/tycho/tree/master/demo/multi-release-jar
Building BND Workspace Projects pomless
The tycho-build extension can now also build projects with a BND Workspaces layout in a complete pomless way,
details can be found here: https://tycho.eclipseprojects.io/doc/master/BndBuild.html
Handling of local artifacts can now be configured through the target platform
Previously it was only possible to influence the handling of local artifacts with the
-Dtycho.localArtifacts=<ignore/default>
option, from now on this can be configured through the target platform as well like this:the supported values are:
include
- (default) local artifacts are included and may override items from the target,default
- for backward-compatibility with older documentation, equivalent toinclude
ignore
- local artifacts are ignorednew tycho-versions-plugin mojos
bump-versions mojo
When using version checks it can occur that a version bump is required. This manual and error prone task can now be automated with the
tycho-versions-plugin:bump-versions
mojo, it allows configuration of an automatic version bump behavior in combination with theorg.eclipse.tycho.extras:tycho-p2-extras-plugin:compare-version-with-baselines goal
or similar.It works the following way:
mvn [other goals and options] org.eclipse.tycho:tycho-versions-plugin:bump-versions
VersionBumpRequiredException
the projects version is incremented accordinglyset-property mojo
Updating properties in a project can now be automated with the
tycho-versions-plugin:set-property
mojo. It is very similar to thetycho-versions-plugin:set-version
mojo but only updates one or more properties, for example:This is mostly useful with Tycho CI Friendly Versions where one can define version by properties the mojo can be used to update the defaults.
set-parent-version mojo
Updating the parent version in a project can now be automated with the
tycho-versions-plugin:set-parent-version
mojo. Similar to thetycho-versions-plugin:set-version
mojo, this just updates the version of the parent pom, for example:new bnd-test mojo
Tycho now has a new mojo
tycho-surefire-plugin:bnd-test
to easily execute tests using the bnd-testing framework.This is similar to
tycho-surefire-plugin:plugin-test
but uses the BND testing framework, integrates nicely with the OSGi Testing Supportand allows to execute prebuild test-bundles.
Additional information and a demo can be found here:
https://tycho.eclipseprojects.io/doc/master/TestingBundles.html#bnd-testing
new tycho-baseline-plugin
Tycho now has a new mojo to perform baseline comparisons similar to the bnd-baseline-plugin but takes the tycho-dependency model into account.
A usual configuration looks like this:
Any baseline problems will then be reported to the build:
Also feature baselining is supported according to Versioning features
Class loading changes for Eclipse based tests
Due to reported class loading clashes, the ordering of class loading has been modified in Eclipse based tests.
The previous loading can be restored by a new
classLoaderOrder
parameter.This applies to
tycho-surefire-plugin:test
andtycho-surefire-plugin:plugin-test
.define targets in repository section
From now on one can define targets also in the repository section of the pom, only the URI variant is supported, but actually you can write everything as an URI already, this then looks like this:
You might also use https:
or reference a maven deployed artifact
or anything that can be resolved to a valid URL in your running build.
Parameter enhancements for tycho-apitools-plugin:generate goal
The parameters of the
tycho-apitools-plugin:generate
goal have been completed and improved.New parameter for tycho-p2-repository-plugin:assemble-repository
The
tycho-p2-repository-plugin:assemble-repository
mojo has now a new configuration parameterfilterProvided
that (if enabled) filter units and artifacts that are already present in one of the referenced repositories.That way one can prevent including items that are already present in the same form in another repository.
If you want to include repository references automatically, there are two other new options:
addPomRepositoryReferences
- all P2 repositories from the pom are added as a referenceaddIUTargetRepositoryReferences
- all P2 repositories defined in target files IU-location types are added as a referenceso now one can produce a self-contained update-site that only includes what is not already available from the target content used by specify:
Building OSGi Repositories with tycho-p2-repository-plugin:assemble-repository
OSGi defines an own repository serialization format Tycho can now produce such repositories to ease integration with these format, the only thing required is specifying the following configuration options:
This will generate an additional
repository.xml
file in the root of the produced p2 repository representing the content as an OSGi Repository.New parameter in tycho-packaging-plugin:package-plugin
The
tycho-packaging-plugin:package-plugin
mojo has now a new configuration parameterderiveHeaderFromSource
(default true), that allows Tycho to discover additional headers declared in the source (e.g. from annotations).The following headers are currently supported:
Require-Capability
is enhanced with additional items, if osgi.ee capability is found, it replaces the deprecated Bundle-RequiredExecutionEnvironmentThis can be disabled with the following configuration in the pom:
Variable resolution in target repository location
URI in
<repository location="...">
in*.target
files can contain:${env_var:MY_VARIABLE}
${system_property:myProp}
passed at build time as-DmyProp
${project_loc:ProjectName}
Migration guide 3.x > 4.x
New delayed target platform resolving
Tycho has already introduced a new mode in Tycho 3.0.0 that was activated with
-Dtycho.resolver.classic=false
that was finalized in Tycho 4.x this new mode has several advantages:If you see any issues please let us know so we can fix any problem with it, this new mode is now configured through the target platform configuration
and if you like the old behavior it can be configured in the following way:
Tycho-Build Extension uses smart builder
The Tycho-Build Extension now uses the Takari Smart Builder which has superior parallel performance when executing with
-T
.To retain the maven default, or if you even want to use a different builder, you can pass
-Dtycho.build.smartbuilder=false
to your build.skipExec parameter remove from test mojos
The test-mojo previously defined a (deprecated)
skipExec
parameter, this parameter is now removed and one should useskipTests
instead.allowConflictingDependencies parameter removed
The parameter
allowConflictingDependencies
was removed from the target platform configuration. It solely relied on deprecated and outdated stuff, if there are still use-cases please let us know about them so we can provide alternative ways to archive this.Choosable HTTP transports
Tycho uses a custom P2 transport to download items from updatesites, previously URLConnection was used for this but now the Java HTTP 11 Client is the new default because it supports HTTP/2 now.
To use the old URLConnection one can pass
-Dtycho.p2.httptransport.type=JavaUrl
to the build.Valid values are:
JavaUrl
- uses URLConnection to retrieve filesJava11Client
- uses Java 11 HttpClientPGP Signing Enhancements
The tycho-gpg::3.0.0:sign-p2-artifacts mojo has been significantly enhanced.
The following properties have been added:
skipIfJarsignedAndAnchored
- This is similar toskipIfJarsigned
but is weaker in the sense that the signatures are checked in detail such that the PGP signing is skipped if and only if one of the signatures is anchored in Java cacerts. The default isfalse
. SetskipIfJarsignedAndAnchored
totrue
andskipIfJarsigned
tofalse
to enable this feature.skipBinaries
- Setting this tofalse
will enable the signing of binary artifacts, which are of course not jar-signed.pgpKeyBehavior
- Specifyskip
,replace
, ormerge
for how to handle the signing of artifacts that are already PGP signed.signer
- Currently supported arebc
andgpg
where the former is a new implementation that uses Bouncy Castle for signing, which is significantly faster and allows signing to proceed in parallel. This can also be configured by the system propertytycho.pgp.signer
.mixed reactor setups require the new resolver now
If you want to use so called mixed-reactor setups, that is you have bundles build by other techniques than Tycho (e.g. bnd/felix-maven-plugin) mixed with ones build by Tycho,
previously this was only possible with enabling an incomplete resolver mode and using
pomDependencies=consider
.From now on such setups require the use of the new resolver mode (
-Dtycho.resolver.classic=false
) supporting the usual resolver mode and thus incomplete resolver mode was removed completely.pom declared dependencies handling has slightly changed
With the new resolver mode (
-Dtycho.resolver.classic=false
) pom dependencies are considered by default, also the way how they are handled have slightly changed:Previously all units where always added to the full target resolution result. This has often lead to undesired effects, especially when there are large (transitive) dependency chains
as things can easily slip in.
From now on the target platform is always queried first for a unit fulfilling the requirement and only if not found the pom dependencies are queried for an alternative.
pom declared dependencies are considered for compile
Previously dependencies declared in the pom are ignored by Tycho completely and even though one could enable these to be considered in target platform
this still requires them to be imported in the bundle manifest to finally be usable for compilation.
Now each pom defined dependency is always considered for compilation as this matches the expectation of most maven users and finally allows to have 'compile only' dependencies to be used,
for example with annotations that are only retained at source or class level.
One example that uses API-Guardian annotations can be found here: https://github.com/eclipse/tycho/tree/master/tycho-its/projects/compiler-pomdependencies
You can disable this feature through the
tycho-compiler-plugin
configuration:Properties for tycho-surefire-plugin's 'useUIThread' and 'useUIHarness' parameters
The configuration parameters
useUIThread
anduseUIHarness
parameter of thetycho-surefire-plugin
can now be set via the propertiestycho.surefire.useUIHarness
respectivelytycho.surefire.useUIThread
.Minimum version for running integration/plugin tests
Previously the
osgibooter
has claimed to be Java 1.5 compatible but as such old JVMs are hard to find/test against already some newer code was slipping in. It was therefore decided to raise the minimum requirement to Java 1.8 what implicitly makes it the lowest bound for running integration/plugin tests with Tycho.This requires any tests using pre 1.8 java jvm to be upgrade to at least running on Java 1.8.
Using integration/plugin tests with eclipse-plugin packaging
Some improvements have been made for the test execution with
eclipse-plugin
packaging that probably needs some adjustments to your pom configuration or build scripts:skipITs
has been renamed totycho.plugin-test.skip
integration-test
has been renamed toplugin-test
integration-test
has been changed from**/PluginTest*.class", "**/*IT.class
to the maven default**/Test*.class", "**/*Test.class", "**/*Tests.class", "**/*TestCase.class
integration-test
mojo is no longer part of the default life-cycle, that means it has to be explicitly be enabled to be more flexible and this is how standard maven behavestest
mojo of themaven-surefire-plugin
is no longer part of the default life-cycle, that means it has to be explicitly be enabled to be more flexible and to not pollute the test-phase.To restore old behaviour you can add the follwoing snippet to your (master) pom:
New Maven dependency consistency check
Tycho has a new mojo to check the consistency of the pom used for your bundle.
To enable this add the following to your pom (or adjust an existing configuration):
This will then:
verify-osgi-pom
mojoDefault value change for trimStackTrace
tycho-surefire-plugin had set the default value of the trimStackTrace option to true.
The default will now be aligned with maven-surefire-plugin at false and will need to be manually adjusted for users that really need the stack traces trimmed.
Old behavior can be restored through configuration of the tycho-surefire-plugin:
v3.0.5
Backports
v3.0.4
Backports
-Dtycho.build.smartbuilder=true
v3.0.3
Dependency upgrades and Maven 3.9.0 support
This release includes some dependency upgrades and a fix to run Tycho 3 with Maven 3.9.0.
Parameter enhancements for tycho-apitools-plugin:generate goal
The parameters of the
tycho-apitools-plugin:generate
goal have been completed and improved.v3.0.2
Fixed support for the generation of a source feature from a maven target-location template
The generated source feature now properly includes the source bundles.
EclipseRunMojo
argLine
andappArgLine
are reintroduced and no longer deprecated.The
argLine
andappArgLine
options have long been deprecated and were removed in Tycho 3.0.0.They are generally inferior to the list-based
jvmArgs
andapplicationArgs
respectively.However there are use cases where the arguments need to be extensible via property expansion, in which case the list-based approach is not always a suitable alternative.
As such, these two options have been re-introduced for Tycho 3.0.2 and are no longer marked deprecated though
jvmArgs
andapplicationArgs
remain the preferred mechanism.Backports
v3.0.1
Fix for java.lang.NoSuchMethodError: 'void org.eclipse.equinox.internal.p2.repository.helpers.ChecksumProducer
If you face the following error with using Tycho 3.0.0 update to 3.0.1 to fix it.
v3.0.0
Tycho now support forking of the Eclipse Java Compiler
Previously forking was not supported, now forking is possible and will be used if a custom java home is specified.
New option to transform P2 dependencies into real maven coordinates
The
tycho-consumer-pom
mojo has a new option to resolve p2 introduced dependencies to 'real' maven coordinates now, when enabled it queries maven-central with the SHA1 of the file to find out what are the actual maven central coordinatesand place them in the generated pom consumer-pom.
New tycho-p2-plugin:dependency-tree mojo
Sometimes it is useful to find out how dependencies of a project are actually pulled in. Tycho now supports a new
tycho-p2-plugin:dependency-tree
mojo that outputs a tree view of the P2 dependecies of a tycho project.Example with Tycho integration test project:
Support for inclusion of all source bundles in an update-site
The tycho-p2-repository-plugin:2.7.0:assemble-repository now support a new property
includeAllSources
that,when enabled, includes any available source bundle in the resulting repository.
Support for Eclipse-Products with mixed Features and Plugins
Tycho now supports building mixed Products. In mixed Products both the listed features and listed plug-ins are installed.
Therefore the Product attribute
type
is now supported, which can have the valuesbundles
,features
andmixed
and takes precedence over the boolean-valueduseFeatures
attribute.New API Tools Mojo
Tycho now provides a new API Tools Mojo, see https://github.com/eclipse/tycho/tree/master/tycho-its/projects/api-tools for an example how to use it.
new sisu-osgi-connect
The new sisu-osgi-connect provides an implementation for plexus according to the Connect Specification that allows to run an embedded OSGi Framework from the classpath of a maven-plugin.
As both, the maven plugin and the embedded framework, share the same classlaoder you can use the best of both worlds and interact seamless with them.
This can be used in the following way:
For the setup you need to do the following:
META-INF/sisu/connect.bundles
that list all your bundles you like to have installed in the formatbsn[,true]
, wherebsn
is the symbolic name and optionally you can control if your bundle has to be started or notDeprecated Features
The
tycho-compiler:compile
andtycho-compiler:testCompile
optionrequireJREPackageImports
is deprecated now and will produce a warning when used, bundles currently rely on this option should migrate to proper importing packages from the non java.* namespace.Tycho compiler support for java.* imports
The
tycho-compiler:compile
andtycho-compiler:testCompile
has a new optionrequireJavaPackageImports
(defaults tofalse
) that allows to assert importing of packages from thejava.*
namespace.This is allowed since OSGi R7 and considered ǵood practice since the evolving of modular VMs there is no guarantee what packages a JVM offers,
Eclipse M2E lifecycle-mapping metadata embedded
All Tycho plugins are now shipped with embedded M2E lifecycle-mapping-metadata files.
Therefore M2E now knows by default how to handle them and it is not necessary anymore to install any connector (usually
org.sonatype.tycho.m2e
was used) for them.Support for BND in tycho-build extension (aka pomless builds)
The Tycho Build Extension (aka pomless build) now detects bnd.bnd files in the root of a pomless bundle and automatically generates an appropriate maven execution automatically.
This can be used to generate any content by the BND plugin, e.g. declarative service xml or JPMS infos see here for an example:
https://github.com/eclipse/tycho/tree/master/tycho-its/projects/pomless/bnd
Tycho no longer ships JVM profiles
Because of modular VMs the profiles shipped by Tycho has never been complete and actually are already partly generated in regards to available packages.
From now on, Tycho do not ship any profiles and thus you can use any VM in the toolchains or as a running VM and Tycho will generate a profile for it.
Enhanced Support for Maven CI Friendly Versions
Starting with Maven 3.8.5 Tycho now supports an enhanced form of the Maven CI Friendly Versions beside the standard properties names one could also use:
These uses the usual semantics that you can use them in a version string e.g.
<version>${releaseVersion}${qualifier}</version>
and pass them on the commandline.Beside this, Tycho supports some useful default calculation for
qualifier
if you give a format on the commandline with-Dtycho.buildqualifier.format=yyyyMMddHHmm
(or any other format supported). Tycho will also make the build qualifier available in your Maven model!
That way you can configure your pom in the following way:
What will result in the usual
1.0.0-SNAPSHOT
for a regularmvn clean install
, if you want to do a release, you can now simply callmvn -Dtycho.buildqualifier.format=yyyyMMddHHmm clean deploy
and your artifact will get the
1.0.0-<formatted qualifier>
version when published! This also is supported if you use pomless build.To use this new feature you need to enable the tycho-build extension with the
.mvn/extensions.xml
file in the root of your project directory:Please note that we use another new feature from Maven 3.8.5 here, where you can use properties from the file
.mvn/maven.config
in your.mvn/extensions.xml
file, so if you put in this:You can now control your Tycho version for
.mvn/extensions.xml
and yourpom.xml
in one place and still override it on the commandline with-Dtycho-version=...
Support for non-modular JVMs no longer top tier
Support for compilation for pre-Java 11 JVMs bytecode is no longer considered first class nor tested. Actual support is not removed but people facing issues with it will have to come with fixes on their own.
Support for PDE Declarative Component Annotation processing
One can enable either global or per project the generation of component xmls in PDE. Until now it was required for Tycho to still import the annotation package even though
classpath=true
was set, beside that one needs to check in the generated xmls.Tycho now has improved support for this with the following:
.settings/org.eclipse.pde.ds.annotations.prefs
in the project, tycho adapts the settings there and ifclasspath=true
is set no more imports are required.tycho-ds-plugin
where global default settings can be configured if project settings are not present, the below shows an example with default values:If the
tycho-ds-plugin
is enabled for a project it generates the necessary xml files if not already present in the project.Improved P2 transport for more efficiently http-cache handling and improved offline mode
P2 default transport is more designed as a weak cache that assumes the user is always online.
While for an IDE that might be sufficient as target resolution is only performed once in a while and updates are triggered by explicit user request, for Tycho this does not work well:
Because of this, Tycho now includes a brand new caching P2 transport that allows advanced caching, offline handling and fallback to cache in case of server failures. The transport is enabled by default so nothing has to be done, just in case you want the old behavior you can set
-Dtycho.p2.transport=ecf
beside that the following properties might be interesting:Force cache-revalidation
If you run maven with the
-U
switch Tycho revalidates the cache.This is useful if you have changed an updatesite in an unusual way (e.g. adding new index files) as tycho now also caches not found items to speed-up certain scenarios where many non existing files are queried.
Configure minimum caching age
Some servers don't provide you with sufficient caching information. For this purpose, Tycho by default assumes a minimum caching age of one hour. You can switch this off, or configure a longer delay by using
-Dtycho.p2.transport.min-cache-minutes=<desired minimum in minutes>
.Choosing a sensible value could greatly improve your build times and lower bandwith usage.
If your build contains a mixture of released and 'snapshot' sites you have the following options:
Cache-Control: must-revalidate
header in which case Tycho ignores any minimum age.-Dtycho.p2.transport.min-cache-minutes=0
. This will still improve the time to resolve the target.Automatic generation of PDE source bundles for pom-first bundles
PDE requires some special headers to detect a bundle as a "Source Bundle", there is now a new mojo
tycho-source-plugin:generate-pde-source-header
that supports this, it requires the following configuration:maven-source-plugin
. Please note that it needs to be bound to theprepare-package
phase explicitly!Limit the number of parallel test executions across the reactor
You can specify a
<reactorConcurrencyLevel>
(default unlimited) fortycho-surefire:integration-test
andtycho-surefire:test
that limits the number of concurrently running tests.This can be useful if you like to execute the build with multiple threads (e.g.
-T1C
) but want to run the integration tests in a serial manner (e.g. because they are UI based).Migration guide 2.x -> 3.x
Java 17 required as runtime VM
From 3.x on Tycho requires Java 17 as a runtime VM, but you can still compile code for older releases.
Default value for archive-products has changed
Previously Tycho uses
zip
for all platforms when packaging a product, now.tar.gz
is used for linux+mac. If you want you can restore old behaviour by:Remove
tycho.pomless.testbundle
switch frombuild.properties
in favor of specification of project's packaging-typeThe boolean property
tycho.pomless.testbundle
, which allowed to specify in thebuid.properties
if a Plug-in is a Test-Plugin or not, has been removed.Instead one can specify the packaging-type of that Maven-project directly. To migrate simply apply the following replacements in the
build.properties
:tycho.pomless.testbundle = true
->pom.model.packaging = eclipse-test-plugin
tycho.pomless.testbundle = false
->pom.model.packaging = eclipse-plugin
This already works in the Tycho 2.7.x stream (but the generated artifactId does not yet have a 'test'-prefix).
sisu-equinox is now sisu-osgi
The sisu-equinox module is now cleaned up and made more generic so it could be used in a wider area of use case, therefore the equinox part is stripped and some API enhancements are performed.
As sisu-equinox is a separate module used inside Tycho, users of Tycho itself are usually not affected, but plugin developers might need to adjust there code to conform to the changed API contracts.
publish-osgi-ee do not publish a fixed size of profiles anymore
The
publish-osgi-ee
previously has published a fixes list of "usefull" execution environments maintained by Tycho.This is no longer true and Tycho do publish only those JavaSE profiles that are available to the build and have a version larger than 11 if not configured explicitly.
jgit-timestamp provider moved from
org.eclipse.tycho.extras
toorg.eclipse.tycho
The
tycho-buildtimestamp-jgit
plugin has moved to theorg.eclipse.tycho
group id.Removal of deprecated
eclipse-update-site
andeclipse-application
packaging typesThese packaging types have been deprecated since a long time and there is the replacement
eclipse-repository
.Removal of
tycho-pomgenerator:generate-poms
The
tycho-pomgenerator:generate-poms
mojo is no longer supported as it was useful only in the days where tycho-pomless was incomplete.Today its usage is very limited and tycho-pomless is a much better (and supported) alternative now.
Removal of
tycho-source-feature:source-feature
This mojo is replaced by the
tycho-source-plugin
with executionfeature-source
which offers equivalent and even enhanced functionality.Pack200
Pack200 technology is obsolete and no longer supported after Java 13.
Tycho removed all support for dealing with pack.gz files including pack200 specific plugins, various options in Mojos and support for resolving fetching in core.
Omit any pack200 specific plugins, options and in any other way dealing with *.pack.gz files.
The following are removed:
includePackedArtifacts
includePacked
reusePack200Files
BuildQualifierMojo
project.basedir
option removedIt was totally ignored in all latest versions.
PublishProductMojo
flavor
option removedIt was hardcoded to "tooling" always and had no practical meaning to change.
EclipseRunMojo
argLine
andappArgLine
options removed /applicationArgs
option fixedargLine
andappArgLine
have been replaced by list-basedjvmArgs
andapplicationArgs
respectively.applicationArgs
(previously known asapplicationsArgs
) has been corrected to not perform anyinterpretation of whitepace and quotes anymore. Individual arguments are now used literally (just like
jvmArgs
).v2.7.5
Fixes:
v2.7.4
Fixes:
Eclipse M2E lifecycle-mapping metadata embedded
All Tycho plugins are now shipped with embedded M2E lifecycle-mapping-metadata files.
Therefore M2E now knows by default how to handle them and it is not necessary anymore to install any connector (usually
org.sonatype.tycho.m2e
was used) for them.v2.7.3
Fixes:
v2.7.2
Fixes:
v2.7.1
Fixes:
v2.7.0
Tycho-Pomless will become a tycho-core extension
Tycho pomless has started as a small experiment in tycho-extras. Over time it has grown to a fully-fledged solution to build pde-based artifacts with less effort and nearly zero additional configuration.
Neverless, the name "pomless" was always a bit misleading, as actually we have reduced the number required poms to one 'main-pom' it is still not pomless and actually allows poms to be used where suitable.
Because of this, and to not limit the usage to "pomless" with this version a new core-extension is available name 'tycho-build', that effectively does what tycho-extras-pomless does but in the context of 'core' and is open to further improvements (maybe at some time offering an option to not needing a pom at all).
All that needs to be done is to replace the old
with
Notice the changed artifactId.
Tycho-specific Maven GraphBuilder to support
--also-make
(-am
) and--also-make-dependents
(-amd
)The
tycho-build
extension (see above) was updated with a customorg.apache.maven.graph.GraphBuilder
implementation.Without this, the Maven options
--also-make
(-am
) and--also-make-dependents
(-amd
) were not supported in a Tycho-based build, since only pom-dependencies were considered by Maven.Using the custom
GraphBuilder
Tycho is able to perform P2 dependency resolution early-on and supply Maven with an updated set of projects required for the build.Mixed reactor build support
Previously Tycho has resolved pom considered dependencies as part of the initial Maven setup (before the actual build starts). This has led to the fact that it was not possible to mix projects that e.g. dynamically generate a manifest.
This was now changed and Tycho can now build mixed project setups. See this integration test as an example:
https://github.com/eclipse/tycho/tree/master/tycho-its/projects/mixed.reactor
This slightly changes some of the behavior of previous
pomDependencies=consider
:initialize
phase.There is one restriction for such mixed setups, see: https://github.com/eclipse/tycho/issues/479
Caution when switching between Tycho versions
Tycho 2.7 changed how it handles bad p2 maven meta-data. When you run builds with Tycho 2.7+ and then run builds with older Tycho versions, the meta-data written to your local Maven repository (e.g. ~/.m2/repository/.meta/p2-artifacts.properties) by Tycho 2.7 confuses older Tycho versions, so using different local Maven repositories or deleting that file between builds is recommended when switching between builds with current Tycho and older versions.
v2.6.0
Delayed classpath computation
Previously the classpath of a project was computed in the maven-setup phase, this has several restrictions.
Tycho now delays the classpath computation to a later stage (
initialize
phase).If you want to perform the classpath validation in the
validate
phase of your build you can force classpath computation with the following snippet:Support for generation of a feature from a maven target-location template
Tycho now supports the m2e feature to generate a feature from a maven target location.
Support for nested targets
Tycho now supports nested target locations.
An example can be found [here](https://togithub.com/eclipse/tycho/tree/master/tycho-its/projects/targ
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.