As a side note:

Scenario:  you want to make a dependency available to your build but
said artifact does not live in any remote Maven repo, rather it is
"supplied" from the Git repo.

In this case - as an alternative to what you are currently doing - you
can also simply install it locally, using the Maven Install Plugin's
"install-file" goal.

For example:

<plugin> <groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-install-plugin</artifactId> <version>3.1.4</version> 
<executions> <execution> <id>foo-install-in-local-repo</id> 
<phase>initialize</phase> <goals><goal>install-file</goal></goals> 
<configuration> <groupId>self.private</groupId> <artifactId>foo</artifactId> 
<version>LOCAL-IN-GIT</version> <packaging>jar</packaging> 
<file>${project.basedir}/libs/foo.jar</file> </configuration> </execution> 
</executions> </plugin>


It is a bit cleaner in the sense that you don't have to construct a POM
file, maintain maven-metadata.xml file, etc.  

Also, when drive-by developers look at your <dependencies> section:
because the dependency's version is 'LOCAL-IN-GIT' it should obvious to
such developer that it is supplied by the Git repo itself.


There are pros and cons of both solutions, I guess.


/L


On 10/03/2025 21.41, Bob Marinier wrote:
> I was able to replace file://${project.baseUri} with ${project.basedir} and 
> it worked. Still not clear if/why baseUri isn't allowed here, but not a big 
> deal for me. Also, a very minor nit, but "basedir" isn't camelCase like 
> baseUri and rootDirectory (and the "dir" vs. "Directory" inconsistency). I'm 
> assuming this can't be changed for compatibility reasons but pointing it out 
> just in case!
>
> Bob
>
> -----Original Message-----
> From: Bob Marinier <bob.marin...@soartech.com>
> Sent: Monday, March 10, 2025 11:25 AM
> To: users@maven.apache.org
> Subject: [EXTERNAL]maven 4 RC3 possible issue
>
> Hi all,
>
> I recently saw the jfokus talk on maven 4 and heard the desire for more 
> people to try it out and report back, so here goes. I tried RC2 and RC3 on an 
> open source project I maintain (https://github.com/soartech/jsoar) and ran 
> into two issues (note this works fine with maven 3.9.8, which is what I 
> currently have on my machine otherwise). I did not modify the poms at all to 
> try to take advantage of any new features. I ran "mvn clean verify" with Java 
> 17 on windows 11.
>
> I got the following output for RC3 (RC2 is similar):
>
> PS D:\git\jsoar> mvn clean verify
> [INFO]
> [INFO] 1 problem was encountered while building the effective settings (use 
> -e to see details) [INFO] [INFO] Scanning for projects...
> [ERROR] Some problems were encountered while processing the POMs [ERROR] The 
> build could not read 1 project -> [Help 1] [ERROR]
> [ERROR]   The project com.soartech:jsoar-soarunit:5.1.2-SNAPSHOT 
> (D:\git\jsoar\jsoar-soarunit\pom.xml) has 1 error
> [ERROR]     'repositories.repository.[repo].url' contains an unsupported 
> expression (only expressions starting with 'project.basedir' or 
> 'project.rootDirectory' are supported). @ line 75, column 13
> [ERROR]
> [ERROR] To see the full stack trace of the errors, re-run Maven with the '-e' 
> switch [ERROR] Re-run Maven using the '-X' switch to enable verbose output 
> [ERROR] [ERROR] For more information about the errors and possible solutions, 
> please read the following articles:
> [ERROR] [Help 1] 
> http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
>
> The part it is complaining about is this block in one of the submodule (or I 
> should say subproject now) poms:
>
>     <!-- local repo for sml dependencies -->
>     <repositories>
>         <repository>
>             <id>repo</id>
>             
> <url>file://${project.baseUri}/sml-setup/repo</url<file://$%7bproject.baseUri%7d/sml-setup/repo%3c/url>>
>             <releases>
>                 <updatePolicy>always</updatePolicy>
>             </releases>
>         </repository>
>     </repositories>
>
> I'm using a variable here to point to a directory that contains a dependency 
> that isn't published (I had to make it myself). I don't know if this is a 
> maven 4 bug, or something that is no longer supported, or something that was 
> never supposed to be supported but happened to work anyway in maven 3. I 
> could use a relative path instead, unless there is some other official way to 
> do this?
>
> Thanks,
> Bob
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to