I am new to intellij idea and I was blocked in the bulid-process. I get two springcloud based projects and I have installed the so called 'scp-accesscontrol-component-client' in one workplace and I have found the installed jar in local repository. But the other project dependency cannot import the jar from local repository but download from the remote repository and it cannot find the jar for I haven't deploy into the remote reposite. How to set IDEA to aotu-import bulit-jars from the local repository?thanks!
When you are using maven, you can add it to the pom.xml file as a dependency. Then IDE will get the jar automatically when running the maven command.
<dependencies>
<dependency>
<groupId>com.abccompany</groupId>
<artifactId>sample-app</artifactId>
<version>0.0.1</version>
</dependency>
</dependencies>
New to big Java projects so I'm not too sure how dependencies work in code. If I wanted to use apache thrift, why can I not just put
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TThreadPoolServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport;
at the top of my files? Does this require me to download something and add it to my classpath? Wouldn't that imply that anyone else trying to run my code would also need to install it locally? I'm hoping to have standalone Java files without using something like Maven or npm. Thanks in advance.
I would recommend you to use a dependency management tool like
Maven or Gradle.
Those tools will help you with your dependencies and not only (Builds, lifecycles, etc).
So what you will have to do is the following:
For Maven at your pom file, get the dependency from the Maven Repo:
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.15.0</version>
</dependency>
For Gradle at your .gradle file, again from Maven Repo:
implementation group: 'org.apache.thrift', name: 'libthrift', version: '0.15.0'
If you won't use the above tools, then you must find and download the .jar file
of the library, you want to use and add it to your project's classpath.
Go to the Apache Thrift website and there you can get the latest release.
But, to answer your question, YES they should also download the libraries you used unless you pack them all together (as Maven does it for you).
But the issue is if the other users download a different version than the one you used. Then maybe your app won't run as expected or even throw exceptions.
How would one import the Google Cloud Client Library found at :
http://googlecloudplatform.github.io/google-cloud-java/0.8.0/index.html
Into eclipse, non maven, java?
I have found no .jar file in the library.
EDIT:
I tried adding the .jar file but I still get "the import could not be resolved" on the following imports:
import com.google.gcloud.AuthCredentials;
import com.google.gcloud.datastore.Datastore;
import com.google.gcloud.datastore.DatastoreOptions;
import com.google.gcloud.datastore.Entity;
import com.google.gcloud.datastore.Key;
import com.google.gcloud.datastore.KeyFactory;
Just download it from Maven Central, even if you do not want to use some proper build tool like Gradle or even Maven: https://repo1.maven.org/maven2/com/google/cloud/google-cloud/0.8.0/google-cloud-0.8.0.jar
As you do not want to use a proper build tool with transitive dependency management (like Gradle, Ant+Ivy, Maven in best-to-worst order) you of course also have to add all transitive dependencies manually. Look into the POM file of the library at https://repo1.maven.org/maven2/com/google/cloud/google-cloud/0.8.0/google-cloud-0.8.0.pom and also download and add all dependencies and their dependencies and their dependencies.
The google-cloud-0.8.0.jar is just an empty placeholder, so you cannot use something by just importing that JAR of course.
com.google.gcloud.AuthCredentials for example is actually contained in gcloud-java-core and com.google.gcloud.datastore.Datastore in gcloud-java-datastore. If you are interested in which JAR contains an actual class file you can easily use the Maven Central search for this like http://search.maven.org/#search%7Cga%7C1%7Cfc%3Acom.google.gcloud.datastore.Datastore
Get JAR file from maven central, for example for 0.8 version here is download link. And then add JAR to your Eclipse project as usual.
I build a common maven module named push-common. Another project need to import it. The one who use windows system can import it with maven dependency. However, the one who use Mac can't import it. The pom.xml configration as follows
<dependency>
<groupId>com.llh</groupId>
<artifactId>push-common</artifactId>
<version>1.0</version>
</dependency>
In actually, the push-common-1.0.jar even have been downloaded in local maven repository, but just can't import to project. By the way , the IDE is intellij idea 14.
Build the project with mvn clean install, it will help you
So the quick background is I am creating a java program, that uses many different imports
import org.apache.hadoop.conf.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.*;
import org.apache.hadoop.util.*;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
I know that Netbeans isn't finding these files because I do not have them on my computer. But is there a way to have Netbeans automatically connect with org.apache and retrieve these files? Or do I just have to go and download them. Someone recommended using Maven, but I am not sure if this is the right solution or how to go about that?
Thanks
Unless you use a Maven structure (see here getting started with Maven) you will have to download all jars manually.
If using only Hadoop (as in your example) this might not seem that much of a deal, but when working with big projects it is easier to declare your dependencies in a pom.xml file. It is much more easier than downloading X different jars, and you can easily move to a newer version of a library, rather than having to delete and and download another.
I saw that someone asked in a comment why people like Maven so much. Well, to be honest, I personally find it easy to use and very useful. Furthermore, a Maven project can be easily imported in IntelliJ, Eclipse or Netbeans, whereas creating for example an IntelliJ project can cause difficulties in importing it in Eclipse or NetBeans.
To get started using Maven with Netbeans, you can go to: New Project, Categories:Maven Projects:{Best Option}. Then in the project files, open pom.xml. Here is where dependencies for your project are added. If you are not sure what to insert try searching for your jar name + "maven" on the internet. The plugin for Netbeans is able to connect to the maven repository and autocomplete most fields.
Sample from: http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.6
<project...>
....
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
...
</project>
Download the .jar file here: http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-core/0.20.2
In Eclipse, right-click on your project, click Properties, search in the text box for Library, click on Build Paths, click Add External JAR, and select the file you downloaded from the link above.
You will have to download the jar-files yourself. Unless you start using Maven or a similar dependency management tool.
You must download them. The name org.apache.hadoop is a package name, and we only use the name of the site as a convention. See this tutorial on packages for more information. Essentially a package is a folder on your computer, often in the Java\jre\lib\ext\ directory.
Refer tutorial
http://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm
It mentions :-
Download Hadoop-core-1.2.1.jar, which is used to compile and execute the MapReduce program. Visit the following link http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-core/1.2.1 to download the jar.
Not a netbeans user , but I'm sure that even in netbeans, you have a maven plugin.
"Mavenize" your project, and when you will perform mvn clean install, you will get these jars to local maven repository.
With Eclipse I use the m2Eclipse plugin and it works really well for me.
This of course depends that these jars can be found in maven repositories over the net, such as maven central repository.
I have final figured out my preferred way to create a new Hadoop project and import the dependencies using Maven.
Using NetBeans I create a new Maven project.
Then under project files, I open the pom.xml.
I finally add inside of
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.2</version>
</dependency>
After building with dependencies I am now ready to code.