Upload artifacts to Nexus through UI - maven-2

I'm trying to create a pom bundle in Nexus3, but I get an error that the assets duplicate each other:
WARNING
The assets 1 and 2 have identical coordinates, The assets 2 and 3 have
identical coordinates, The assets 3 and 4 have identical coordinates,
The assets 4 and 5 have identical coordinates
Here is a screenshot of the upload page:

So in this case, you are generating a pom for 5 different jar files. Internally nxrm 3 will rewrite the name of these jar files to match what maven expects given the pom settings you have provided. In this case, all of these jar files will be named libreoffice-uno-4.0.3.3.jar. You have two options. You can upload each of these jar files with a separate pom file where the artifact name matches the name of the jar file. Alternatively you can give each jar file a classifier. That would cause the files to be named libreoffice-uno-4.0.3.3-<classifier>.jar.

Related

How to to define bamboo artifact so its NOT published in syb folder

The artifact definition and the file structure in the bitbucket repository is as below.
The build when run creates application-dev.properties & safeguard-dev.properties under classes folder. When i click them it takes me to classes folder inside which the property files are present. But i want them to be published directly like the jar. So that when I click the file it should download. But if i give full path it errors out. Please help me how to define this?
error 19-Dec-2022 16:34:57 Failing as no matching files has been found and empty artifacts are not allowed.
error 19-Dec-2022 16:34:57 Unable to publish artifact [application-dev.properties]:
error 19-Dec-2022 16:34:57 The artifact is required, build will now fail.
Bamboo won't put the artifacts in a subfolder if the "Location" points to exactly where the files are. I.e. don't use the "**" wildcard in the "Copy pattern". I'd say try even to have a separate artifact per properties file.
Your location is pointing to "workdir/src", but you need "target/classes". Get rid of the $bamboo.build.working.directory: that's not the maven build dir and you don't need it altogether (because current work dir is already set to your project dir). If I get the paths right, this should work:
Name: application-dev.properties
Location: target/classes
Copy pattern: application-dev.properties

How does webpack determine which files/folders it will include in a bundle

I have a set of files in my project's src/main/resources folder - such as index.html, myproject.css, i18n.js
When I run webpack only one file is automatically copied over to the bundle, namely 118n.js. Why does this get bundled but nothing else?
Currently, all the .js files on the classpath are eligible to be bundled. This is why your i18n.js file is included in the resulting bundle.
Note, however, that it is not planned to continue to support this behavior (relying on .js files on the classpath). Instead, you should include which resources are eligible to be bundled with the jsSourceDirectories setting key. For instance, to include all the files of the src/main/resources directory:
jsSourceDirectories += (Compile / resourceDirectory).value

"no main manifest attribute" error in intellij when executing jar

I'm working on a kotlin project that I want to execute as a jar. This is all done in IntelliJ Idea and I went about making the jar using the artifacts.
The process I followed was (as illustrated by an Idea guide):
Add artifact (as jar) from project structure
Build jar
Run jar
After this, I get a
'no main manifest attribute, in ____.jar'
What I have tried after reading several stack overflow questions:
Checking that the manifest file is in the correct folder and has the correct path in the artifact
Adding code to the build.gradle file for the jar->manifest portion
Trying the method of moving the manifest stuff into a resources folder
Checking that the jar exists
Moving the manifest stuff into a different folder (java,kotlin,out folders)
Making sure that the manifest file is in the correct format
All of the above has not worked.
Something that is confusing to me is that, even when I alter the manifest file to be in "incorrect" format, it still gives the same error. The path stated in the artifact's details is correct yet there is no difference even when I purposely input incorrect items in the manifest file. Not sure if that is the"real" problem but I'm also not sure how to fix that as well
None of the solutions worked for me.
I solved it in this way:
When setting up the artifact, change:
Meta-inf: (...)\src\main\ (you must remove "java")
Also, there was a problem with resources, solved this way:
When setting up the artifact:
Output Layout > Add copy of > Directory content > resources.
That's all!
For anyone that may have encountered this problem in intellij and did not find a solution in any other posts, what helped me was
Navigating to Project Structure
Going to the Artifacts tab
Explicitly adding a new META-INF/ directory in my jar
Adding the created MANIFEST.MF file to the META-INF/ in the jar FROM THE ARTIFACTS TAB
Rearranging the order for the META-INF/ to be at the top
Building and running
The end result looked like this
while creating the exeutable jar file explicitly create a mainfest.txt file
that should be in order of the directory structure and mainfest.txt file should contain only one line (Main-Class:name of the class containg main method)then run the jar tool

Copy file from target folder of one module to another target folder module

I have two modules A and B. After maven create the artifact of A, this one generate a a.conf file that I need in my integration test on B. I would like to copy this a.conf file from the A target folder to the B target folder, to be deleted from B after finish the process.
So far I make it works with Maven resource plugin. But only works if I move the conf file from resource A to resource B folders, and not from target to target folder.
The ant plugin seems like not offer me the possibility to copy files from module to another.
Can anybody please suggest me a way to do what I want to accomplish here?.
Regards.

Something strange with Project Paths in IntelliJ 14.1.4

So, something has started to act weird in my intelliJ project. I even tried removing the iml and .idea data, to no avail.
I go to Project Structure. There, I have a content root. Withing, I have three folders - one for my jar (and jni lib), one for Samples and one for Tools (just tools written to use the jar). The jar, Samples and Tools are marked blue (sources).
In the jar folder, I have my source tree (com\company\projectname\XXX), a lib folder, a folder for my JNI lib and a folder I created call 'junit', which is the focus of this question. It is marked in Project Structure in green (Tests).
Within, I have a folder structure eerily similar to my code: com\company\projectname\junit.
When I open a file in junit\com\company\xxx\junit, I have a big red underline under my package com.company.xxx.junit; line which tells me: "Package name 'com.company.xxx.junit' does not correspond to the file path 'junit.com.company.xxx.junit'.
I was under the impression that marking a folder as 'Tests' would instruct the IDE to use that as a "parent" folder, if you will, eliminating the need to prepend another folder name.
How can I separate the code from unit tests and in fact, create two junit test suites (one is for internal use, the other is a 'skeleton' for distribution), park them under one "umbrella" folder and NOT have to prepend the package names with that folder name?
Update: Project structure:
Based on your screen shot, the issue is that the junit directory is a subdirectory of another source directory, namely MyProvider. A source directory (whether a "production" source or a unit test source directory) cannot be a subdirectory of another source directory.
You need to either:
move the junit directory out of MyProvider so it is a sibling directory, or
unmark MyProvider as a source directory, create a main (or some such directory) in MyProvider, mark it as a source directory, and then move the com directory/package into main.
Option 2 would be the preferred way to deal with this as it follows a very common directory structure standard.
UPDATE (Following comment from OP)
Here's a couple of screenshot showing the configuration you desire:
I removed the .IdeaIC15 folder and started over. Working for now. Something must have gotten confused in the config, either as part of the update, or in the course of operation. I have taken a backup copy as it is now, so if this happens again, I will have something to check.