Giter Site home page Giter Site logo

nexus-repository-puppet's Introduction

Nexus Repository Puppet Format

Maven Central

CircleCI Join the chat at https://gitter.im/sonatype/nexus-developers DepShield Badge

Developing

Requirements

Also, there is a good amount of information available at Bundle Development

Building

To build the project and generate the bundle use Maven

./mvnw clean package

If everything checks out, the bundle for puppet should be available in the target folder

Build with Docker

docker build -t nexus-repository-puppet .

Run as a Docker container

docker run -d -p 8081:8081 --name nexus-repository-puppet nexus-repository-puppet

For further information like how to persist volumes check out the GitHub repo for our official image.

After allowing some time to spin up, the application will be available from your browser at http://localhost:8081.

To read the generated admin password for your first login to the web UI, you can use the command below against the running docker container:

docker exec -it nexus-repository-puppet cat /nexus-data/admin.password && echo

For simplicity, you should check Enable anonymous access in the prompts following your first login.

Using Puppet With Nexus Repository Manager 3

On how to get started to proxy remote repositories, create hosted ones, upload your private modules and create group of repositories we have detailed instructions here!

Compatibility with Nexus Repository Manager 3 Versions

The table below outlines what version of Nexus Repository the plugin was built against

Plugin Version Nexus Repository Version
v0.1.16 3.42.0-01
v0.1.15 3.37.0-01
v0.1.6 3.30.1-01
v0.1.1 3.17.0-01
v0.0.2 3.14.0-04
v0.0.1 3.14.0-04

If a new version of Nexus Repository is released and the plugin needs changes, a new release will be made, and this table will be updated to indicate which version of Nexus Repository it will function against. This is done on a time available basis, as this is community supported. If you see a new version of Nexus Repository, go ahead and update the plugin and send us a PR after testing it out!

All released versions can be found here.

Features Implemented In This Plugin

Feature Implemented
Proxy ✔️ *
Hosted ✔️
Group ✔️

* tested primarily against the Puppet Forge, not guaranteed to work on the wide wild world of Puppet repositories.

Supported Puppet Commands

Plugin Version Implemented
puppet module install ✔️

Installing the plugin

There are a range of options for installing the puppet plugin. You'll need to build it first, and then install the plugin with the options shown below:

Easiest Install

Thanks to some upstream work in Nexus Repository, it's become a LOT easier to install a plugin. To install the puppet plugin, follow these steps:

  • Build the plugin with mvn clean package -PbuildKar
  • Copy the nexus-repository-puppet-0.1.x-bundle.kar file from your target folder to the deploy folder for your Nexus Repository installation.

Once you've done this, go ahead and either restart Nexus Repo, or go ahead and start it if it wasn't running to begin with.

You should see puppet (proxy) in the available Repository Recipes to use, if all has gone according to plan :)

Temporary Install

Installations done via the Karaf console will be wiped out with every restart of Nexus Repository. This is a good installation path if you are just testing or doing development on the plugin.

  • Enable Nexus Repo console: edit <nexus_dir>/bin/nexus.vmoptions and change karaf.startLocalConsole to true.

    More details here: Bundle Development

  • Run Nexus Repo console:

    # sudo su - nexus
    $ cd <nexus_dir>/bin
    $ ./nexus run
    > bundle:install file:///tmp/nexus-repository-puppet-0.1.x.jar
    > bundle:list
    

    (look for org.sonatype.nexus.plugins:nexus-repository-puppet ID, should be the last one)

    > bundle:start <org.sonatype.nexus.plugins:nexus-repository-puppet ID>
    

(more) Permanent Install

For more permanent installs of the nexus-repository-puppet plugin, follow these instructions:

  • Copy the bundle (nexus-repository-puppet-0.1.x.jar) into <nexus_dir>/deploy

This will cause the plugin to be loaded with each restart of Nexus Repository. As well, this folder is monitored by Nexus Repository and the plugin should load within 60 seconds of being copied there if Nexus Repository is running. You will still need to start the bundle using the karaf commands mentioned in the temporary install.

(most) Permanent Install

If you are trying to use the puppet plugin permanently, it likely makes more sense to do the following:

  • Copy the bundle into <nexus_dir>/system/org/sonatype/nexus/plugins/nexus-repository-puppet/0.1.x/nexus-repository-puppet-0.1.x.jar

  • Make the following additions marked with + to <nexus_dir>/system/org/sonatype/nexus/assemblies/nexus-core-feature/3.x.y/nexus-core-feature-3.x.y-features.xml

          <feature prerequisite="false" dependency="false">wrap</feature>
    +     <feature prerequisite="false" dependency="false">nexus-repository-puppet</feature>
    

    to the <feature name="nexus-core-feature" description="org.sonatype.nexus.assemblies:nexus-core-feature" version="3.x.y.xy"> section below the last (above is an example, the exact last one may vary).

    And

    + <feature name="nexus-repository-puppet" description="org.sonatype.nexus.plugins:nexus-repository-puppet" version="0.1.x">
    +     <details>org.sonatype.nexus.plugins:nexus-repository-puppet</details>
    +     <bundle>mvn:org.sonatype.nexus.plugins/nexus-repository-puppet/0.1.x</bundle>
    + </feature>
     </features>
    

    as the last feature.

This will cause the plugin to be loaded and started with each startup of Nexus Repository.

The Fine Print

It is worth noting that this is NOT SUPPORTED by Sonatype, and is a contribution of ours to the open source community (read: you!)

Remember:

  • Use this contribution at the risk tolerance that you have
  • Do NOT file Sonatype support tickets related to puppet support in regard to this plugin
  • DO file issues here on GitHub, so that the community can pitch in

Phew, that was easier than I thought. Last but not least of all:

Have fun creating and using this plugin and the Nexus platform, we are glad to have you here!

Getting help

Looking to contribute to our code but need some help? There's a few ways to get information:

nexus-repository-puppet's People

Contributors

aornatovskyy avatar bhamail avatar cardil avatar darthhater avatar mykyta avatar scherzhaft avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nexus-repository-puppet's Issues

[DepShield] (CVSS 9.8) Vulnerability due to usage of commons-fileupload:commons-fileupload:1.3.2

Vulnerabilities

DepShield reports that this application's usage of commons-fileupload:commons-fileupload:1.3.2 results in the following vulnerability(s):


Occurrences

commons-fileupload:commons-fileupload:1.3.2 is a transitive dependency introduced by the following direct dependency(s):

org.sonatype.nexus:nexus-rapture:3.14.0-04
        └─ org.sonatype.nexus:nexus-extdirect:3.14.0-04
              └─ org.sonatype.directjngine:directjngine:2.2.5
                    └─ commons-fileupload:commons-fileupload:1.3.2
              └─ commons-fileupload:commons-fileupload:1.3.2

This is an automated GitHub Issue created by Sonatype DepShield. Details on managing GitHub Apps, including DepShield, are available for personal and organization accounts. Please submit questions or feedback about DepShield to the Sonatype DepShield Community.

Releases

Hello,

The 'newest' release is from Jan 11, 2019 while the version needed for a current Nexus is 4 versions up.
Are there any plans to provide compiled releases?

Thank you.

Absent recipe puppet in nexus after 3.37

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    *Install Nexus Repository 3.38.0-01 and newer

  • What feature or behavior is this required for?
    In create repository recipe puppet isn't present.

  • How could we solve this issue? (Not knowing is okay!)
    Install Nexus 3.37.3-02

  • Anything else?

b.get is not a function

The puppet module repository does not seem to be working. I have built containers for the 0.16.0 and 0.15.0 versions of the plugin and both exhibit the same behaviour: I cannot access the artifacts.

When browsing the repository using the gui the following error message appears:

TypeError: b.get is not a function (http://localhost:8081/static/rapture/nexus-repository-puppet-prod.js?_v=3.37.0-01&_e=OSS:1)

(The 0.16.0 version is using nexus3 3.42.0-01. The above message has this version in the error message)

[DepShield] (CVSS 7.5) Vulnerability due to usage of org.apache.commons:commons-compress:1.18

Vulnerabilities

DepShield reports that this application's usage of org.apache.commons:commons-compress:1.18 results in the following vulnerability(s):

This is an automated GitHub Issue created by Sonatype DepShield. Details on managing GitHub Apps, including DepShield, are available for personal and organization accounts. Please submit questions or feedback about DepShield to the Sonatype DepShield Community.

Support new PostgreSQL Database.

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

librarian-puppet support

  • What are you trying to do?
    Install puppet modules from a nexus server with this plugin using librarian-puppet(v2.2.3)

  • What feature or behavior is this required for?
    We wish to install puppet modules via librarian-puppet, currently we have a working version of this plugin installing via puppet module install

  • How could we solve this issue? (Not knowing is okay!)

  • Anything else?
    Verbose output from librarian-puppet run is attached.

librarian-puppet-run.txt

Compile versus Nexus v3.37.0

  • What are you trying to do?

Trying to compile the plugin versus latest Nexus v3.37.0 fails.

  • What feature or behavior is this required for?

To keep the plugin fresh and working against the latest versions of Nexus.

  • How could we solve this issue? (Not knowing is okay!)

Fix the code issues, so code compiles, and all tests are passing.

Return modules dependencies

  • What are you trying to do?
    Puppet modules contain dependencies. For example puppetlabs-ntp depends on puppetlabs-stdlib.
    On calls to v3/releases, I would like to return the dependencies of a Puppet module inside the field metadata.

  • What feature or behavior is this required for?
    This is necessary so installing modules using $ puppet module install will bring also the dependencies, like in the following example.

$ puppet module install puppetlabs-ntp --module_repository=http://localhost:8081/repository/puppet-hosted
Notice: Preparing to install into /home/camaral/.puppet/etc/code/modules ...
Notice: Created target directory /home/camaral/.puppet/etc/code/modules
Notice: Downloading from http://localhost:8081/repository/puppet-hosted ...
Notice: Installing -- do not interrupt ...
/home/camaral/.puppet/etc/code/modules
└─┬ puppetlabs-ntp (v7.3.0)
  └── puppetlabs-stdlib (v5.1.0)
  • How could we solve this issue? (Not knowing is okay!)
    It is necessary to save the dependencies on the Asset's Attributes when it is uploaded. Calls to /release must use the saved data to return the dependencies.

  • Anything else?
    I will send a pull request for that in a minute.
    As I am interested on the hosted repository, I will apply the PR on the branch, if that is fine.

Error when using group repository (`undefined local variable or method `file_uri'`)

Hi,

I'm having troubles when trying to use the plugin with Puppet/r10k with a group repository. At this point, I'm unsure whether this problem emanates from configuration issues on my end, or from the implementation of these features in the plugin (supposedly #18 ).

  • What are you trying to do?

I'm trying to use a group repository consisting of :

  • one hosted repository
  • one proxy repository

to have Puppet (or rather, r10k) download a module from Nexus - the sonarqube module in the example below. Since both #2 and #17 are closed, I think this should be working, but I get an error when using r10k to fetch modules from Nexus with this setup :

INFO     -> Using Puppetfile '/etc/puppetlabs/code/environments/production/Puppetfile'
INFO     -> Deploying environment /etc/puppetlabs/code/environments/production
INFO     -> Environment production is now at 8dbfc7fcf2c56e0d58b1354256792296f04c5662
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/concat
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/apache
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/tomcat
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/gitlab
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/gitlab_ci_runner
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/sonarqube
ERROR    -> undefined local variable or method `file_uri' for #<PuppetForge::V3::Release:0x000055aea1af1338>
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/postgresql
INFO     -> Deploying Puppetfile content /etc/puppetlabs/code/environments/production/modules/nexus

When switching from the group repo to the proxy repo, the error disappears and the postgresql module is downloaded... but this in turn prevents us from downloading in-house modules with Nexus.

The use of Nexus is configured in the /etc/puppetlabs/r10k/r10k.yaml and /etc/puppetlabs/puppet/puppet.conf files as follows on our puppetserver :

---
# The location to use for storing cached Git repos
forge:
  # Using the proxy repository directly.
  # This works (but can't resolve in-house modules, which are hosted on another repository Nexus-wise)
  baseurl: 'https://fqdn.for.the.nexus/repository/puppet-forge-proxy'
  # Using the group repository
  # This triggers the error above
  # baseurl: 'https://fqdn.for.the.nexus/repository/puppet-forge'

# ...
[main]
module_repository = 'https://fqdn.for.the.nexus/repository/puppet-forge-proxy'
# module_repository = 'https://fqdn.for.the.nexus/repository/puppet-forge'

# ...
  • What feature or behavior is this required for?

Being able to use the plugin both a proxy and a hosted repository at the same time.

  • How could we solve this issue? (Not knowing is okay!)

As mentioned earlier, I'm not sure if there is actually a problem on this plugin. For what it's worth, the file_uri mentioned in the error message also appears in the commits of PR #18. This might be completely irrelevant, but thought I'd mention it just in case.

  • Anything else?
    • The Nexus I tried this on is a 3.20.1-01, while the last version compatible version mentioned in the README (for the v0.1.1) is the 3.17.0-01 - I don't know if this is significant though.
    • I tried building the plugin from two differents refs (the nexus-repository-puppet-0.1.1 tag and 0cda6b262c3ee0fe3a4a2cd7e4eece352f5aaa89, which was the latest commit on master when I built the plugin), with the same behavior both times.
    • Puppet versions were 6.13.0 (puppetserver) and 6.18.0 (puppet agent).

Thank you !
Philippe

Add maven wrapper

Adding maven wrapper to the project makes it easier to start and keep everybody on the same maven version. Maven is pretty stable and does not break often, but it still good to keep everyone in the same page.

  • What are you trying to do?
    Add mvnw to the project

  • What feature or behavior is this required for?
    It makes easier to keep compatibility between the developers.

  • How could we solve this issue? (Not knowing is okay!)
    Run mvn -N io.takari:maven:wrapper and commit the files.

  • Anything else?
    Let me know if this suggestion is something that you guys would like to have. If so, I can submit a Pull Request.

Puppet module search and install failing with '404 Not Found' post nexus upgrade to 3.28.1-01

Issue Details

  • What are you trying to do?

    • We are trying to search puppet modules against a nexus proxying the puppet forge. This nexus was recently upgraded to 3.28.1-01
      puppet module search puppetlabs-translate --debug --module_repository https://nexus.example.com/repository/puppet Debug: Runtime environment: puppet_version=4.10.12, ruby_version=2.1.9, run_mode=user, default_encoding=US-ASCII Notice: Searching https://nexus.example.com/repository/puppet ... Debug: Evicting cache entry for environment 'production' Debug: Caching environment 'production' (ttl = 0 sec) Debug: Failed to load library 'pe_license' for feature 'pe_license' Debug: HTTP GET https://nexus.example.com/repository/puppet/repository/puppet/v3/modules?query=puppetlabs-translate Error: Request to Puppet Forge failed. The server being queried was https://nexus.example.com/v3/modules?query=puppetlabs-translate The HTTP response we received was '404 Not Found' Error: Try 'puppet help module search' for usage
  • What feature or behaviour is this required for?

    • For searching and downloading the puppet modules.
  • How could we solve this issue? (Not knowing is okay!)

    • Haven't figured out yet.
  • Anything else?

    • We are using the plugin version 0.1.3

Group Support

Puppet repository should have a group feature implemented. If so integration of private and proxied modules can be achived.

When support for group repositories is added users can host their provate modules that rely on public dependencies. Installation of such modules will be seamless.

Solving this issue will need #2 (hosted support) be fixed earlier.

Hosted Support

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Host puppet modules in Nexus Repository

  • What feature or behavior is this required for?
    Basically so people can host their own private modules

  • How could we solve this issue? (Not knowing is okay!)
    You can take a look at how we've done this for other formats and implement it! Helm has a Hosted implementation and you can likely look at that for inspiration

  • Anything else?
    Have fun! PRs welcome!

Missing recipe for puppet-proxy

  • What are you trying to do?
    I upgraded nexus from 3.26.1-02 to the 3.30.0-01 with an existing puppet-proxy repository configuration
    Nexus failed to start complaining about "missing recipe for puppet-proxy"

  • What feature or behavior is this required for?
    Required to use the puppet repository in nexus

  • How could we solve this issue? (Not knowing is okay!)
    Check/Fix missing recipe for puppet repository

  • Anything else?
    When I deleted the puppet-proxy configuration and tried to upgrade nexus, it was successful.
    I checked the system information page and I could see the nexus-repository-puppet is recognized as installed.

bundleId 257
name nexus-repository-puppet
symbolicName org.sonatype.nexus.plugins.nexus-repository-puppet
location reference:file:system/org/sonatype/nexus/plugins/nexus-repository-puppet/0.1.5/nexus-repository-puppet-0.1.5.jar
version 0.1.5
state Active
startLevel 200
fragment false

I then tried to manually re-create the puppet-proxy repository but I couldn't see any puppet option on the Select Recipe page.

Also tried to reinstall the plugin but still couldn't see the puppet recipe. Tried versions 0.1.2 and 0.1.5 of the nexus-repository-puppet plugin.

Thanks in advance,
Joseph

[DepShield] (CVSS 9.8) Vulnerability due to usage of com.fasterxml.jackson.core:jackson-databind:2.9.2

Vulnerabilities

DepShield reports that this application's usage of com.fasterxml.jackson.core:jackson-databind:2.9.2 results in the following vulnerability(s):


Occurrences

com.fasterxml.jackson.core:jackson-databind:2.9.2 is a transitive dependency introduced by the following direct dependency(s):

org.sonatype.nexus:nexus-plugin-api:3.14.0-04
        └─ com.fasterxml.jackson.core:jackson-databind:2.9.2
        └─ org.sonatype.nexus:nexus-blobstore-api:3.14.0-04
              └─ com.fasterxml.jackson.core:jackson-databind:2.9.2

org.sonatype.nexus:nexus-repository:3.14.0-04
        └─ org.sonatype.nexus:nexus-orient:3.14.0-04
              └─ com.orientechnologies:orientdb-server:2.2.36
                    └─ com.orientechnologies:orientdb-tools:2.2.36
                          └─ com.fasterxml.jackson.core:jackson-databind:2.9.2
              └─ com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.2
                    └─ com.fasterxml.jackson.core:jackson-databind:2.9.2
        └─ com.fasterxml.jackson.core:jackson-databind:2.9.2

This is an automated GitHub Issue created by Sonatype DepShield. Details on managing GitHub Apps, including DepShield, are available for personal and organization accounts. Please submit questions or feedback about DepShield to the Sonatype DepShield Community.

Tag 0.1.5 fails install on Nexus v3.30.0-01

Thanks for creating an issue! Please fill out this form so we can be
sure to have all the information we need, and to minimize back and forth.

  • What are you trying to do?
    Trying to install the plugin using a kar file and Nexus v3.30.0-01

  • What feature or behavior is this required for?
    I wanted to make use of the Puppet recipe to create a Nexus Repository

  • How could we solve this issue? (Not knowing is okay!)*
    Upgrade code to work with Nexus v3.30

  • Anything else?
    2021-03-26 15:35:57,250+0000 ERROR [FelixStartLevel] *SYSTEM Felix - Bundle org.sonatype.nexus.extender [93] EventDispatcher: Error during dispatch. (com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Unable to load cache item)
    com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Unable to load cache item
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2051)
    at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
    at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3976)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4960)
    at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4966)
    at com.google.inject.internal.FailableCache.get(FailableCache.java:54)
    at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
    at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:155)
    at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:592)
    at com.google.inject.internal.AbstractBindingProcessor$Processor.initializeBinding(AbstractBindingProcessor.java:173)
    at com.google.inject.internal.AbstractBindingProcessor$Processor.lambda$scheduleInitialization$0(AbstractBindingProcessor.java:160)
    at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:49)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:124)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:108)
    at com.google.inject.Guice.createInjector(Guice.java:87)
    at com.google.inject.Guice.createInjector(Guice.java:69)
    at com.google.inject.Guice.createInjector(Guice.java:59)
    at org.eclipse.sisu.launch.SisuBundlePlan.inject(SisuBundlePlan.java:78)
    at org.eclipse.sisu.launch.SisuBundlePlan.prepare(SisuBundlePlan.java:50)
    at org.eclipse.sisu.launch.SisuTracker.prepare(SisuTracker.java:186)
    at org.sonatype.nexus.extender.NexusBundleTracker.prepare(NexusBundleTracker.java:69)
    at org.eclipse.sisu.launch.SisuTracker.addingBundle(SisuTracker.java:129)
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:469)
    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:415)
    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)
    at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915)
    at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
    at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)
    at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579)
    at org.apache.felix.framework.Felix.activateBundle(Felix.java:2231)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2146)
    at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
    at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.IllegalStateException: Unable to load cache item
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.createEntry(LoadingCache.java:79)
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.get(LoadingCache.java:34)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:119)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:294)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:65)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:258)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember(BytecodeGen.java:207)
    at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:49)
    at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:156)
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:94)
    at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:30)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:38)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:34)
    at com.google.inject.internal.FailableCache$1.load(FailableCache.java:43)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
    at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
    at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
    ... 35 common frames omitted
    Caused by: java.lang.NoClassDefFoundError: org/sonatype/nexus/repository/mime/ContentValidator
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at com.google.inject.internal.cglib.core.$ReflectUtils.defineClass(ReflectUtils.java:467)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.generate(AbstractClassGenerator.java:339)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:96)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:94)
    at com.google.inject.internal.cglib.core.internal.$LoadingCache$2.call(LoadingCache.java:54)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.createEntry(LoadingCache.java:61)
    ... 52 common frames omitted
    Caused by: java.lang.ClassNotFoundException: org.sonatype.nexus.repository.mime.ContentValidator
    at java.lang.ClassLoader.findClass(ClassLoader.java:523)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at com.google.inject.internal.BytecodeGen$BridgeClassLoader.classicLoadClass(BytecodeGen.java:424)
    at com.google.inject.internal.BytecodeGen$BridgeClassLoader.loadClass(BytecodeGen.java:419)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 61 common frames omitted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.