Am Montag, 10. März 2014, 14:33:21 schrieb Darin Perusich:
I'm running a private instance and I'd like to enable networking on my
workers so they can build some java apps, via maven, which need to
download pom's/war's from the net. I ask google but he wasn't much
help so I'm hoping someone here can help;-)
Adrian already gave the technical answer to your question.
Since I had (and still have) the same problem, here my personal two
cents worth of consideration:
Maven has its own concept of package and package management. It
assumes that packages are built once by the original author
independently from the target platform and are distributed in binary
form only. Each package has its own online repository created by
Maven and the Maven build process downloads packages as Java binary
from this repository whenever it needs them for building other
packages. Maven itself heavily relies on this concept as almost
everything in Maven is controlled by plugins which again are packages
in this sense.
This concept works if you follow it. But it is quite hermetic in the
sense that nothing works well, when you (need to) deviate from the
Maven concept in any way. And it is fundamentally incompatible with
the concept of a package in the sense of a native platform package
manager such as RPM.
My personal conclusion was that you essentially have two options:
1. Forget about OBS and RPM, just do everything the way Maven wants
you to do it. The disadvantage is that you loose all the benefits
from the native package management such as package database
(dependencies, which file belongs to which package), reproducible
builds, version management, inherent documentation of the build
process and so on. The advantage is that it works and you don't have
too much hassle with it. This is my personal short term solution.
2. Transmogrify everything towards RPM style package management. It
requires creating a large number of RPMs, one for Maven itself, one
for each Maven plugin and one for each package that you need as a
dependency for the package you want to build. All these RPMs will
have a devel subpackage that installs the necessary stuff in a local
Maven file repository. The Maven RPM will configure the build process
to disable download of packages and use the local file repository
instead. (There is a switch in Maven for this.) It's a huge amount
of work to do it this way, but it will give you all the benefits of
the RPM package management back to Maven packages. This is my
personal long term solution on my TODO list, but I didn't got around
to it yet.
I believe that anything between these two extreme options will only
bring you much work and hassle without giving you any real benefits.