You should remember from last week's lab that we can create a project by adding a build.gradle
file to a folder and opening that folder in NetBeans. This is our preferred way of creating projects since it means that we don't have to deal with the annoying multi-projects that we get if we use NetBeans to create the project.
Locate the lab02_git
folder that was created when you cloned the repository using the system file manager.
Create a new file inside the lab02_git
named build.gradle
. You can create a new file by right clicking the background and using <
Copy the contents of <> into the file. This is the same build.gradle
script that you saw last week, but with two additions:
The repositories
section tells Gradle which repositories to use to download any library dependencies that are required. Maven central is the primary library repository for Java.
The run
section tells Gradle to pass the System.in
stream through to the application. By default Gradle does not do this which means that code that tries to read input from the console will not work. It is not often that we need to use the System.in
stream, but if you are working on the Java review exercises then you will need to do this for a couple of the exercises.
Save the file.
Open the lab02_git
folder in NetBeans using <
If you see a dialog appear that is warning you about problems with the project, just close it --- you can check the box on the dialog to prevent it from showing you this dialog in the future. The so called 'problem' is that the project needs a priming build. NetBeans will show a little warning icon over the project until the priming build is done.
If you haven't done so already, build the project to fix the warning.
Run the createMissingSourceDirs
task by selecting the project in the projects pane and then double clicking the task in the navigator pane.
Run the createGitIgnore
task to add a .gitignore
file to the repository. We only briefly discussed the .gitignore
file in last week's lab. Any files or folders that are listed in this file will be ignored by Git.
Many of the problems that we see students having with Git are caused by the student committing some build output or other rubbish such as Gradle caches to their repository. Build output and caches change very frequently which makes it easy for merge conflicts to occur if these files are part of your repository. Another common source of problems is the DS_Store
files that Macs like to leave all over the place --- again because these files change frequently which can cause merge conflicts.
We also have size limits on push operations on the GitBucket server. This is to stop students from accidentally pushing their entire home folder into a repository (it is surprisingly easy to accidentally create a repository in the root of your home folder). The limit is currently 20MB which is more than enough considering your total repository size at the end of the semester will generally be less than 1MB if you keep the rubbish out of it.
.
it is considered to be a system file and will be hidden by default in most file managers. You can toggle the file manager setting to show hidden files (< h">> in the Linux lab), or you can use the files pane in NetBeans which does not hide these files.
Open the .gitignore
file in the files pane in NetBeans to take a look. As mentioned, this is a list of all of the files and folders that should be ignored by Git.
When you commit, you are presented with a list of files that will be committed. It is always worth taking a quick look at the list to see if there is anything in the list that you don't want to be committed --- if so, cancel the commit and add the unwanted files to the .gitignore
file.
Run the wrapper
task to add the Gradle wrapper to the project.
If you don't see the four source directories in the project pane, restart NetBeans. As mentioned last week, this is a glitch that happens with NetBeans when the projects are stored on file servers or file systems that don't properly implement file change notifications.