I have a simple java project with this basic structure:
IncludeMe
src
deploy
siteSpecific
-> site1
-> site2
-> etc...
I also have another project which I check out as a Dynamic Web project.
I add it to a tomcat7 instance and run it locally on my machine.
MainWebApp
src
deploy
WebContent
-> resources
-> templates
-> etc...
What I need is to include the 'siteSpecific' folder from the 'IncludeMe' project under the 'WebContent' directory in the 'MainWebApp' project.
So if I make a change to files under 'IncludeMe->siteSpecific', they are automatically picked up and applied by my MainWebApp under 'MainWebApp->siteSpecific' i.e. I do bot want to have to manually copy the contents between the two separate projects.
I currently do the following with no luck:
- Open 'properties' of 'IncludeMe' and go to 'Deployment Assembly'
- Select 'Add' and choose the 'SiteSpecific' folder.
- Source then reads '/siteSpecific' and I adjust the deploy path to be 'siteSpecific'
- Open 'properties' of 'MainWebApp' and go to 'Java Build Path'
- Go to 'projects' tab and add the 'IncludeMe' project.
I'm using Eclipse Indigo 3.7 by the way.
Any help appreciated
Thanks
This is a bit hacky solution but the only one I found when I needed something like this.
The trick is to link external source folder and then use it in "deployment assembly"
Do the following:
Right click on Your webapplication project (MainWebApp)
Build path
Link source
Variables (Here we will add variable that points to our external project, relative to our current project)
New (add something like: "${PROJECT_LOC}..\IncludeMe" in "Location" and some name for new variable)
OK
Extend (You should extend variable You've created on prev. step).
Pick right folder and press OK.
Next.
Add exclusion pattern to prevent eclipse from building anything from that folder.
Finish
After this dancing You should be able to see linked folder in "deployment assembly"...
Related
So I want to have a 'utility project' with all the utility classes and the utility libraries in it (say apache commons libraries under a particular directory called libs in the utility project). So that I can add this 'utility project' to a new project and want to use its java classes and jars both. I know when you add a project you can use its java classes but can't use the jars. Anyway to do this?
You want to create a dependency relation between the two projects. This is better than just adding external JARs as it will keep track of the actual libraries in the utility project even if you change its name or location. To achieve that you need to do two things (although, I believe only step (a) is new to you. If I understand correctly you actually have already carried out (b)).
(a) Go to your utility project then do:
Project -> Properties -> Java Build Path -> Order and Export
Check all the JARs that you'd like to make available to the other project.
(b) Go to the other project (the one that uses the utility project):
Project -> Properties -> Java Build Path -> Projects -> Add
Check the "Utility Project"
You should now see your utility project in the list of projects:
In the properties of the project (from Package Explorer > Right Click > Properties) browse to 'Java Build Path' > Libraries tab.
You can then select the 'Add External JARs' button and add the required jars.
right click on the project where you want to add jars and then select properties. After that select Java Build Path and then click on Add External JARs. You should be able to add jars from here. See following pic, for more info.
Note: You can add reference to projects by clicking on projects tab in same window.
I would suggest you try creating a new "user library" in eclipse which you can use in your projects.
An EclipseSW User Library can be used to represent a set of jarW files. This user library can be added to a project's classpathW. Thus, a user library can be a convenient way to add a set of jar files (rather than individual jar files) to a project's build path. Here, I'll create a user library for a set of TomcatSW jar files.
To create a user library, you can go to Window → Preferences and go to JavaSW → Build Path → User Libraries. I'll click the New button to create a new user library.
More on user libraries at this link
http://www.avajava.com/tutorials/lessons/how-do-i-create-an-eclipse-user-library-for-the-tomcat-jar-files.html
Other ways of doing this at the link below
http://www.wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-(Java)
I've just changed to eclipse an I'm used to manually managing my project structure with Windows filesystem (compiling my .java files into bin with a batch-script). Whenever I wanted my classes to use a .png-file, I simply put this file into the .bin folder.
If I put my .png-files in the bin-folder of the eclipse project as I'm used to, the classes will be able to load the pictures just fine. But sometimes, I don't know when, Eclipse simply deletes the bin-folder and creates a new one based on the contents of the src folder (which doesn't have my .png files). Putting the files into the src-folder (again, manually from the windows file-system) doesn't actually put them in my Eclipse project.
So what I want to ask is: Why/when does Eclipse completely rebuild the bin-folder. And how can I put resources, like .png-files, into my Eclipse project?
of course there is no point in putting files in the bin as it may be rebuilt by Eclipse whenever needed and you'll loose your changes.
by default Eclipse is set up to rebuild the project automatically, you can see that by looking in the "Project" menu entry, you can force Eclipse to rebuild your project by choosing "clean" in that "Project" menu.
So now you should have more control over when Eclipse is building your project.
Regarding adding resources files, I'm not sure what your current project directory structure is, in order to add / remove directories in the project, right click on the project root in the project Explorer side pane and choose "Properties" entry (at the bottom), then you can go to "Java Build Path" -> "Source" tab and manage the project directories.
last, if you change files on your disk and not through Eclipse, right click on the project root and choose "refresh" entry.
Hope this helps.
This is NOT a question about linking source in eclipse java project
Is it possible to add an external folder named "src" in eclipse as the source folder.
The problem here is to keep the external folder name as "src" and not any other name; to do that I tried deleting src and bin folder from the standard eclipse java project and then tried to "Link Source" but that does not work.
Is there any other way I can make this happen?
That is make the Eclipse java project's src actually point to an external folder named "src"?
Similar issues with the out put folder "bin" as well.
System Information
OS: Windows 8, 32 bit
Eclipse: 3.7
Thanks.
You need to use Eclipse to remove the existing source folder from the project configuration, then delete it from the file system, then you can add the externally linked source folder as "src".
Right-click on the project and bring up "Properties..."
Click on "Java Build Path" and then the "Source" tab to show a list of the source folders on the build path.
Select "yourproject/src" and click the "Remove" button. This will remove it from the project (and the .classpath file).
Come out of it and physically delete the folder.
Go back to that dialog box and this time click "Link source...". It should work now. It works for me.
To make link with external folder, we need to rename the folder if any folder already exists with same name like "src" or better delete that folder. After that you can make link with the external folder using the anyone of the following method:
Method: 1 - (Make link manually via code):
1. Open the .project file from root folder of your workspace.
2. Include the below code with your file path:
<linkedResources>
<link>
<name>folder_name_list_in_your_project</name>
<type>2</type>
<location>folder_path_to_include</location>
</link>
</linkedResources>
3. Save the file and refresh the project to include the external folder in your project.
Method: 2 - (Make link manually via UI):
1. Right click the project, select "Build Path -> Configure Build Path".
2. Choose "Source" tab.
3. Click "Link Source" button.
4. Click "Browse" to choose the folder.
5. Enter the folder name in "Folder name" field to list the external name in your project.
6. If you need to add the pattern for include and/or exclude file, click "Next" and enter the pattern. Then click "Finish".
7. Otherwise click "Finish".
It works for me and hope that my steps also help you.
It is somewhat ugly, but you can create a hardlink in your filesystem. In the Windows command line, use mklink /H src d:\path\to\external\src.
I know that the following will hardly be useful, but: Think of a different approach.
As stated here one can change the name of a project. However, it only changes the name of the project and it will not change the folder structure.
As an example if your project is called sample1 and it resides ~/user1/development/IdeaProjects/sample1, the folder location won't be changed to ~/user1/development/IdeaProjects/sample2 if one changes the project name to sample2.
Right click on project, then Refactor -> Rename... (shift+F6), set desired name
Close IntelliJ
Rename directory in your filesystem to your desired name
In startup dialog select Open (or File -> Open... in main window)
Please select renamed project directory
Enjoy, it work's for me!
It seems that one has to right click on the project (after following the instructions to rename the Project), then choose Refactor -> Move to relocate project to the new location. I didn't find any solution to rename and move a project at once.
Close IntelliJ
Rename the folder in Explorer (Windows) / Finder (OSX)
Open IntelliJ
Import Project from Dialog, or File -> Import Project
Select the folder with the new name
Follow the dialogues
I know that probably I won't be able to help sheidaei after more than 7 years from asking question, but I hope that someone will find it useful :)
To change project directory name of a current project without closing Intellij, choose view of "Project Files" in drop-down menu in the project browser(typically on the left) instead of "Project".
How to select "Project Files" view in project browser
Then use right-click on project's directory name/path to open context menu.
Use Refactor->Rename.
Finding option "Rename" in context menu
Type in a new directory name, apply changes using button "Refactor" and that's it.
"Rename" dialog box
If you wish to change Module Name to match directory name, use Refactor->Rename option on project name in "Project" view of project browser.
If it is a gradle project, instead of renaming it using Refactor->Rename :
set the rootProject.name variable in the settings.gradle file to the new project name.
reimport the project. Hit the 'Refresh all Gradle Projects' button in the Gradle Tool Window.
Then follow steps 2 to 5 in #Dawid's answer.
To remove the old project from IntelliJ's list of managed projects:
select File->Open Recent->Manage Projects..
click the 'x' next to the old project name
Go to File then Project Structure
Under Project Settings -> Project make sure that you change the project name.
Then under Project Settings -> Modules change the name there as well.
Restart Intellij
Use your File Explorer to confirm that the project/modules have been renamed.
After renaming the project folder of a Kotlin project in IntelliJ, using the Import Project option as suggested in the other answers created module related problems for me. I was not able to select Main class in the Run dialogue. To solve this, I used Create New Project option. It doesn't delete your project files.
So to rename the folder, first create a copy of your project for safety and then follow these steps:
Close IntelliJ.
Go to file explorer and manually rename the folder.
Open IntelliJ.
Choose the option Create New Project
Select your desired language/framework e.g. Kotlin, click Next
For Project Name, specify your desired project name. Maybe same as folder name.
For Project Location, choose the folder that you manually renamed.
Click Finish, IntelliJ will ask if you want to overwrite .idea and .iml files. Click Yes for both.
Hope that helps.
For JetBrains v. 2019.2 (September 2019):
To move project directory without changing it's name:
Press Alt+1 to open project structure
Right click on project directory
Go to File -> Refactor -> Move directory
OR
Left click on project directory
Press F6
Specify target parent directory and hit OK.
To rename project directory:
Press Alt+1 to open project structure
Right click on project directory
Go to File -> Refactor -> Rename...
OR
Left click on project directory
Press Shift+F6
Select Rename directory (actually it's already selected) and hit OK.
Specify new directory name.
If you need both to move project directory and to change it's name, then do the steps one after another.
After you've done renaming/moving, close the project and remove it from the recent projects list (it became non-functional and you won't need it anymore there).
Then hit "Open" and find the project directory at it's new location. Now you have your project directory moved!
The last two steps should be done with a command like Edit project or something like that, where you can directly specify project directory, but as there is no such command, you need to remove project and reopen it at it's new location instead.
A work-arround for this, if you get an error when click "projectPackage" -> Refactor -> Move, is to close Intellij, move the folder manually, and then in:
C:\Users\user.name\ .IntelliJIdea2019.1\config\options
edit the file recentProjects.xml like this, with you new path, save and close, re-open jetbrains ide and it's done.
Well, I have figured this out and I will write down a step by step guide to how to rename the project directory linked to a GitHub repo.
Situation:
Windows 10
IntelliJ project is linked with a GitHub repo
I want to rename the GitHub repo and the project directory name and keep all my work the same.
Solution:
rename the repo on GitHub, make sure pages is still working with the new name
rename the project from IntelliJ by (right-click on the parent directory -> refactor -> rename)
rename the directory from IntelliJ by (right-click on the parent directory -> open module settings -> project)
3.1. update "project name"
3.2. update project compiler output
rename the GitHub remote repo from IntelliJ by (VCS -> git -> remotes)
close IntelliJ
open System Explorer
6.1. rename the project directory
6.2. open "workspace.xml" and rename all occurrence of the old word (you might want to cut it in another place, update it, then paste it back)
open IntelliJ and select import project
now, everything is okay, you can use Git inside IntelliJ normally as nothing has happened!
That is it, I just made a push from IntelliJ to the renamed repo and everything works as before without any mention of the old name.
click on your project file,which is you want to move and then push F6
Close IntelliJ
Rename the folder in Explorer (Windows) / Finder
(OSX)
Open IntelliJ Import Project from Dialog, or File -> Import
Project
Select the folder with the new name
further additional steps might be required if you see your module named
as new_modulename[parent module/old module name],
then update
settings.gradle with new name and reimport
This problem has been frustrating me for some time...
A lot of sites like Sourceforge use SVN or Subversion to manage their code. I have little problem compiling SVN code in C++, but when it comes to Java, my IDE gives me a headache.
I've installed Subclipse for SVN support for Eclipse, and it works. I can check out any code into my Workspace. Now Subclipse will put the whole thing into a special project of some sort that can't be compiled. So I search Google for something and I come up with modifying the eclipse XML file to specify the 'nature' to be a Java project.
Okay, now it's a Java project. Say I have a folder structure like:
\src
\data
\graphics
I get 800 compiler errors complaining the package name is org.company.SomePackage instead of src.org.company.SomePackage.
Then what I do is create packages called src, data, graphics, etc, instead of just folders. I cut and paste everything in the folders into the packages and finally I can compile it.
What is a better way to do this?
EDIT: I can only check out anything SVN as a SVN project, and there's no way within Eclipse to change that to a Java project. How can I check out the SVN as a java project in the first place?
I get 800 compiler errors complaining
the package name is
org.company.SomePackage instead of
src.org.company.SomePackage.
Right click on Project -> Properties -> Java Build Path -> Source Tab -> Add "src" as a source folder and remove any others.
it thinks your source is stored in root folder. you need to specify to the project that /src is the source folder.
In general when we have an Eclipse project, which contains Java code – but we didn’t set it up as a Java project when we created or checked out this project, we are struck. And Eclipse doesn’t allow to change the project type inside the Gui. So we need to add the java nature as below.
1. Close your project.
2. Open your project file (which is located in your root directory of the appropriate project) called .project with your default editor. Search for
< natures>
< /natures>
and change it to as below
< natures>
<nature>org.eclipse.jdt.core.javanature</nature>
< /natures>
Save the changed file.
3. Open the project again – now it should become a java project.
Then do the following as explained by Kevin
On the Project Explorer Window ->Right click on the specific Project -> Properties -> Java Build Path -> Source Tab -> Add "src" as a source folder and remove any others.
For me when I went into “Source Tab” – the “src” folder was already added, but it was not giving me the desired result (ie I was still not seeing the .java files in the project explorer window). So I removed the “src” filed that was already added in the Source Tab and then added them again. And then all worked fine.
You have to configure proper source paths. Some open source projects make this automatic by checking their .project and .classpath files in with the rest of their files. For others, you'll have exactly the problem you are having. You need to set the classpath so the Java compiler knows where to find the source. You right click on the project and select properties and configure an arbitrary classpath, but the answer given by Kevin is easier for a beginner.