[
https://issues.apache.org/jira/browse/FELIX-6603?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brian Demers updated FELIX-6603:
--------------------------------
Description:
I have a project that uses the bundle plugin's `manifest` goal. (version 5.1.8)
https://github.com/jwtk/jjwt/blob/27b3caba80d653227d271d9ff8e474314f00b9e0/pom.xml#L595-L613
If I run a clean build `mvn clean verify` and then run `mvn verify`, the second
run generates different content in the manifest.
In my case, a new header is added: `Originally-Created-By`
And both `Export-Package` and `Import-Package` have different values:
```diff
< Export-Package: io.jsonwebtoken;uses:="io.jsonwebtoken.io,io.jsonwebtoke
< n.lang,io.jsonwebtoken.security,javax.crypto";version="0.11.6",io.jsonw
< ebtoken.security;uses:="io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebto
< ken.lang,javax.crypto,javax.security.auth";version="0.11.6",io.jsonwebt
< oken.io;uses:="io.jsonwebtoken";version="0.11.6",io.jsonwebtoken.lang;v
---
> Export-Package: io.jsonwebtoken;version="0.11.6";uses:="io.jsonwebtoken.
> io,io.jsonwebtoken.lang,io.jsonwebtoken.security,javax.crypto",io.jsonw
> ebtoken.security;version="0.11.6";uses:="io.jsonwebtoken,io.jsonwebtoke
> n.io,io.jsonwebtoken.lang,javax.crypto,javax.security.auth",io.jsonwebt
> oken.io;version="0.11.6";uses:="io.jsonwebtoken",io.jsonwebtoken.lang;v
20,22c20,23
< Import-Package: io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebtoken.lang,
< io.jsonwebtoken.security,javax.crypto,javax.crypto.spec,javax.security.
< auth
---
> Import-Package: io.jsonwebtoken;version="[0.11,1)",io.jsonwebtoken.io;ve
> rsion="[0.11,1)",io.jsonwebtoken.lang;version="[0.11,1)",io.jsonwebtoke
> n.security;version="[0.11,1)",javax.crypto,javax.crypto.spec,javax.secu
> rity.auth
```
NOTE: The clean build's `Import-Package` value does NOT contain any versions.
and the `Export-Package` looks to be in a different order.
Ideally, rerunning the `manifest` goal should produce exactly the same results
(assuming no files have changed)
was:
I have a project that uses the bundle plugin's `manifest` goal. (version 5.1.8)
https://github.com/jwtk/jjwt/blob/27b3caba80d653227d271d9ff8e474314f00b9e0/pom.xml#L595-L613
If I run a clean build `mvn clean verify` and then run `mvn verify`, the second
run generates different content in the manifest.
In my case, a new header is added: `Originally-Created-By`
And both `Export-Package` and `Import-Package` have different values:
```diff
< Export-Package: io.jsonwebtoken;uses:="io.jsonwebtoken.io,io.jsonwebtoke
< n.lang,io.jsonwebtoken.security,javax.crypto";version="0.11.6",io.jsonw
< ebtoken.security;uses:="io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebto
< ken.lang,javax.crypto,javax.security.auth";version="0.11.6",io.jsonwebt
< oken.io;uses:="io.jsonwebtoken";version="0.11.6",io.jsonwebtoken.lang;v
---
> Export-Package: io.jsonwebtoken;version="0.11.6";uses:="io.jsonwebtoken.
> io,io.jsonwebtoken.lang,io.jsonwebtoken.security,javax.crypto",io.jsonw
> ebtoken.security;version="0.11.6";uses:="io.jsonwebtoken,io.jsonwebtoke
> n.io,io.jsonwebtoken.lang,javax.crypto,javax.security.auth",io.jsonwebt
> oken.io;version="0.11.6";uses:="io.jsonwebtoken",io.jsonwebtoken.lang;v
20,22c20,23
< Import-Package: io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebtoken.lang,
< io.jsonwebtoken.security,javax.crypto,javax.crypto.spec,javax.security.
< auth
---
> Import-Package: io.jsonwebtoken;version="[0.11,1)",io.jsonwebtoken.io;ve
> rsion="[0.11,1)",io.jsonwebtoken.lang;version="[0.11,1)",io.jsonwebtoke
> n.security;version="[0.11,1)",javax.crypto,javax.crypto.spec,javax.secu
> rity.auth
```
NOTE: The clean build's `Import-Package` value does NOT contain any versions.
and the `Export-Package` looks to be in a different order.
Ideally, rerunning the `manifest` goal should produce exactly the same results
(assuming no files have changed)
A quick and dirty fix for this is to use the maven-clean-plugin, to delete the
previously generated manifest. This is not ideal and may not work in all
scenarios.
> Rebuilding Manifest generates different content
> -----------------------------------------------
>
> Key: FELIX-6603
> URL: https://issues.apache.org/jira/browse/FELIX-6603
> Project: Felix
> Issue Type: Bug
> Components: Maven Bundle Plugin
> Reporter: Brian Demers
> Priority: Major
>
> I have a project that uses the bundle plugin's `manifest` goal. (version
> 5.1.8)
> https://github.com/jwtk/jjwt/blob/27b3caba80d653227d271d9ff8e474314f00b9e0/pom.xml#L595-L613
> If I run a clean build `mvn clean verify` and then run `mvn verify`, the
> second run generates different content in the manifest.
> In my case, a new header is added: `Originally-Created-By`
> And both `Export-Package` and `Import-Package` have different values:
> ```diff
> < Export-Package: io.jsonwebtoken;uses:="io.jsonwebtoken.io,io.jsonwebtoke
> < n.lang,io.jsonwebtoken.security,javax.crypto";version="0.11.6",io.jsonw
> < ebtoken.security;uses:="io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebto
> < ken.lang,javax.crypto,javax.security.auth";version="0.11.6",io.jsonwebt
> < oken.io;uses:="io.jsonwebtoken";version="0.11.6",io.jsonwebtoken.lang;v
> ---
> > Export-Package: io.jsonwebtoken;version="0.11.6";uses:="io.jsonwebtoken.
> > io,io.jsonwebtoken.lang,io.jsonwebtoken.security,javax.crypto",io.jsonw
> > ebtoken.security;version="0.11.6";uses:="io.jsonwebtoken,io.jsonwebtoke
> > n.io,io.jsonwebtoken.lang,javax.crypto,javax.security.auth",io.jsonwebt
> > oken.io;version="0.11.6";uses:="io.jsonwebtoken",io.jsonwebtoken.lang;v
> 20,22c20,23
> < Import-Package: io.jsonwebtoken,io.jsonwebtoken.io,io.jsonwebtoken.lang,
> < io.jsonwebtoken.security,javax.crypto,javax.crypto.spec,javax.security.
> < auth
> ---
> > Import-Package: io.jsonwebtoken;version="[0.11,1)",io.jsonwebtoken.io;ve
> > rsion="[0.11,1)",io.jsonwebtoken.lang;version="[0.11,1)",io.jsonwebtoke
> > n.security;version="[0.11,1)",javax.crypto,javax.crypto.spec,javax.secu
> > rity.auth
> ```
> NOTE: The clean build's `Import-Package` value does NOT contain any versions.
> and the `Export-Package` looks to be in a different order.
> Ideally, rerunning the `manifest` goal should produce exactly the same
> results (assuming no files have changed)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)