I actually got it mostly working.

. is the repository directory in the examples.

There were only a handful of maven-metadata.xml files that were missing
that it was looking for, so on a hunch I copied the
maven-metadata-central.xml to maven-metadata.xml with this one liner

for I in $(find . -name maven-metadata-central.xml); do cp $I $(echo $I|sed
s/-central//); done

and HTTP PUT'd them up with this one-liner.

find . -name maven-metadata.xml | while read f; do art=$(echo $f|cut -c
3-); echo $f; curl -w "%{http_code}" -s -k -u admin:<password> -T $f
http://artifactory.mycompany.com:8081/artifactory/maven-mirror/"${art}";;
done

This is what ended up working in settings.xml:

<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd";
          xmlns="http://maven.apache.org/SETTINGS/1.0.0";
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>

    <servers>
        <server>
            <username>admin</username>
            <password>*****</password>
            <id>companybuild</id>
        </server>
    </servers>

    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>

    <profiles>
        <profile>
            <id>artifactory</id>
            <repositories>
                <repository>
                    <id>snapshots</id>
                    <name>libs-snapshot-local</name>
                    <snapshots />
                    <!-- mvn warns about this tag. It does not recognize it.

<updatePolicy>always</updatePolicy> -->
                    <url>
http://artifactory.mycompany.com.com:8081/artifactory/libs-snapshot-local
</url>
                </repository>
                <repository>
                    <id>releases</id>
                    <name>libs-release-local</name>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <url>
http://artifactory.mycompany.com:8081/artifactory/libs-release-local</url>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>plugins-release</id>
                    <name>plugins-release</name>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <url>
http://artifactory.mycompany.com:8081/artifactory/plugins-release</url>
                </pluginRepository>
                <pluginRepository>
                    <id>snapshots</id>
                    <name>plugins-snapshot</name>
                    <snapshots />
                    <url>
http://artifactory.mycompany.com:8081/artifactory/plugins-snapshot</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>artifactory</activeProfile>
    </activeProfiles>

    <mirrors>
        <mirror>
            <id>artifactory</id>
            <mirrorOf>*</mirrorOf>
            <name>Artifactory</name>
            <url>
http://artifactory.mycompany.com:8081/artifactory/maven-mirror/</url>
        </mirror>
    </mirrors>
</settings>

This settings file is cropped from what we're using and it's messy but I'm
not touching it for now.

What it's failing on now is a tgz we have in the repo that maven thinks is
corrupt but I can perfectly untar it.  Asking for help at my company but I
may just have to dig into it.

--sean

On Wed, Nov 13, 2019 at 3:02 PM Stephen Connolly <
stephen.alan.conno...@gmail.com> wrote:

> So I know that Sonatype have or had a feature in nexus that let you approve
> what dependencies could be consumed by developers from its hosted Maven
> repo. If you used that you could then replicate the nexus storage back-end
> to the offline network via sneaker-net (or better a dmz that only has
> access to the developer nexus)
>
> Unclear if jfrog have a competitive feature
>
> On Thu 7 Nov 2019 at 23:22, Sean Horan <combus...@gmail.com> wrote:
>
> > Hi all,
> >
> > I am tasked with ensuring that the Maven build process of a large
> > government/enterprise-class system does not reach out to the Internet.
> Our
> > Jenkins server's local maven repository has 10,000 POMs.  There are many
> > individual builds that are specific to our product and what we customize
> > for government clients.
> >
> > I have a lot of devops experience but practically no experience with
> Maven
> > and Java beyond struggling to set this up.
> >
> > We are using Artifactory and I'm not sure whether a generic or
> > Maven-specific repository is suitable for this project.
> >
> > As I'm trying to understand it, I am using curl in a find/curl loop
> adapted
> > from
> >
> >
> https://github.com/jfrog/project-examples/blob/master/bash-example/deploy-folder-by-checksum.sh
> >
> > to traverse the ~/.m2/repository on our existing Jenkins server and HTTP
> > PUT it over to Artifactory.  This script would be hardened and sent to
> > internal customers to sync as part of the development process.
> >
> > The problem I am seeing is that the build process is looking for
> > maven-metadata.xml which does not exist on our server.  We do have
> > -companyname and -central XML files for eg, the maven-source-plugin that
> > are slightly different.
> >
> > I have the sense that my approach to this is off and I'm in over my head
> so
> > I could use some help.
> >
> > Any pointers in the right direction would be more than welcome.
> >
> > We are using Maven 3.3.9 and JDK8 on Centos 7 and cannot upgrade at this
> > time.
> >
> > Sean Horan
> >
> --
> Sent from my phone
>

-- 


**CONFIDENTIALITY
NOTICE:* *

*This transmission may contain information 
which is Vimo, Inc. (DBA
Getinsured) confidential and/or legally 
privileged. The information is intended
only for the use of the individual 
or entity named on this transmission. If you
are not the intended 
recipient, you are hereby notified that any disclosure,
copying, or 
distribution of the contents of this transmission is strictly
prohibited. 
If you have received this transmission in error, please immediately
notify 
me by return e-mail and destroy all copies of the original message.*

Reply via email to