[
https://issues.apache.org/jira/browse/MNG-8138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17852337#comment-17852337
]
Tamas Cservenak commented on MNG-8138:
--------------------------------------
Yes, but here is a thing:
* we cannot (read: should not as it is technically impossible) to make a
plugin "packaging aware" (we really just got rid of these
"pom".equals(projectPackaging) checks sprinkled in plugins, as "packaging" is
Maven extension point, so theoretically there can by many packagings,
introduced by users.
* same stands for core: we cannot make core "plugin aware", so to say that
Maven core "refuse" or what not an artifact from plugin, as again, plugins are
also Maven extension points so Core would need to have some knowledge of all
existing plugins out there (impossible).
What we do know:
* maven-jar-plugin is "self aware" in a way, it "knows" is producing Java JAR,
so plugin can perform some checks like "does this project expect a Java JAR as
main artifact"?
* Sadly, Maven3 APIs do not give us many spots to perform these checks
* things will be improved a lot in Maven4 with new API
> Maven internal state should not allow to become "broken"
> --------------------------------------------------------
>
> Key: MNG-8138
> URL: https://issues.apache.org/jira/browse/MNG-8138
> Project: Maven
> Issue Type: Bug
> Components: Core
> Reporter: Tamas Cservenak
> Priority: Major
>
> It seems by certain goal combinations we can make Maven Project instance
> state end up in "wrong" state. Example:
> * create a packaging=pom project
> * invoke jar:jar deploy:deploy
> This will result in following:
> * MavenProject has packaging=pom
> * but, jar:jar will create (an empty) JAR and make it "main artifact"
> basically making JAR as main artifact with ".pom" extension (following what
> packaging artifact handler tells)
> * deploy will happily deploy the jar as pom (as it is the only one artifact
> in project, but backing file is empty JAR, no "replacement" happens here)
> Multiple issues here:
> * Maven should "protect" MavenProject instance IMHO
> * jar:jar should not (or core should not allow) to "break the state"
> * m-deploy-p should figure out this situation: we deal with two artifacts
> (POM and "main JAR") but due packaging they end up on same URL?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)