Paths are not necessary with packages. Lazarus (and lazbuild) knows the path once a package has been installed.
'mvn package' is not about creating Lazarus packages. In Maven terminologie it is the name of a build goal which includes compiling and running tests sources and then 8if no test fails) compile the artifact to the target directory. In Maven, every build will create one target artifact (like a DLL, SO or EXE file). Multiproject builds use many single artifacts and nested Maven project directories.
I think we're misunderstanding each other.
In Lazarus, there are two kinds of packages. FPC has its packages, which apparently can be maintained by fppkg, although I've never used it since the FPC "packages" (fpc-base, gtk2, httpdd20, etc.) are installed or built by default with FPC.
Most Lazarus and Delphi developers, when they refer to packages, are referring to .lpk/.dpk package files that compile and add design and/or runtime components and/or units to the IDE. With Lazarus, these components have to be statically linked into the IDE.
When you use one of these packages in a Lazarus project, it adds a reference to it in the project's .lpi file. No path is saved since the package could easily be installed somewhere else on a different computer. Lazarus supplies the path automatically when compiling the project, either from within the IDE or using the command line lazbuild console app.
So a typical "problem", I suppose, for building a project that has external dependencies, is not so much the FPC "packages" but the Lazarus packages.
So, for example, say somebody gives you an ExtPascal project developed with Lazarus that you want to work on. That is, you're supplied with an .lpi file, .lpr file, one or more .pas/.lfm files, etc.
Now this is probably an extreme case, but it is a real case. With a Lazarus ExtPascal project, before you can open the forms you first need to install up to 4 design time packages. See here for instructions:
http://web.fastermac.net/~MacPgmr/ExtPascal/ExtPToolkitStatus.html#InstallationNote that these are design-time only packages and are not compiled against. To build the ExtPascal app, you also need to download the ExtPascal source (which is not currently a Lazarus package), build the wrapper source units, and compile them. To build the wrapper source units requires downloading and installing the Ext JS documentation.
Furthermore, to run an ExtPascal app, you need a working Web server and you have to copy the Ext JS folder containing the runtime .js files to the Web server.
One thing I suspect about ExtPascal is that more people would try it out if the setup of all this stuff were more automated. So, for example, there are 3 example apps included with my ExtP Toolkit add-on for ExtPascal. They are all Lazarus projects (.lpi). But to try one out requires quite a bit of downloading and installation.
Would this be a place for Maven or some other build system? Let us hear your thoughts on this.
Thanks.
-Phil